(추천자바강의/자바동영상/자바강좌/자바교육)JAVA클래스(Class)와 객체(Object), 클래스,객체 초기화 순서, 자바실행순서
ojc.asia/bbs/board.php?bo_table=LecJava&wr_id=750

1. 클래스(Class)
일반적으로 적용할수 있는 변수와 메소드를 정의하고 있는 설계도 또는 프로토타입 이다.
사용자 정의 자료형, 객체의 자료형
Field라는 멤버변수와 오퍼레이션을 가하는 method 로 이루어짐
클래스의 이름은 대문자로 시작, 다음 단어의 시작은 대문자
2. 객체(Object)
클래스의 인스턴스는 new 수식에 의해 만들어지며 이것이 객체이다.
타입이 클래스인 변수
이름은 소문자로 시작, 다음 단어의 시작은 대문자
3. 클래스와 객체의


4. 클래스 선언
선언하면서 붙여야 하는 키워드
- public(접근지정자가 맨 처음 온다.)
- abstract(추상클래스를 선언)
- final(더 이상 자식으로 상속되지 않음을 명시)
- ClassName(클래스 이름)
- extends(다른클래스를 상속)
- implements(인터페이스 구현)
public abstract class Programmer extends Emp implement Driver {
5. 클래스 초기화 과정
클래스 초기화 순서
클래스가 실행되기 위해 메모리에 적재된 후 딱 한번 초기화
모든 클래스 변수(static 변수)가 디폴트 값으로 초기화(0,’\u0000’,false, null)
클래스 변수 초기화 수식 ( static int I = 999 )
클래스 변수 초기화 블록( static { … } )
클래스 변수 초기화 블록 사용
클래스 변수 초기화 수식만으로 부족할 때
배열 클래스 변수를 초기화할 때
여러 개의 클래스 변수를 한번에 초기화 하는 경우
예외(exception)을 발생시키는 메소드를 호출할 필요가 있을 때
6. 예제
class StaticInit
{
public static int i;
public static int nums[] = new int[10]; // 클래스 변수 초기화 수식
static // 클래스 초기화 블록
{
for(int i = 0; i < 10; ++i)
mums[i] = i;
System.out.println( "클래스 초기화 블록 실행" );
}
public static void main( String args[] )
{
System.out.println("main 메소드 진입");
new StaticInit();
new StaticInit();
}
}
[실행결과]
클래스 초기화 블록 실행
main 메소드 진입
7. 객체의 생성과정
new 키워드에 의해 합 영역에 객체의 메모리가 할당 되고 객체 내의 모든 인스턴스 변수는 default 초기값으로(0, ‘\u0000’,false, null)로 초기화 된다.
생성자가 호출되어 다음 순서대로 실행된다.
생성자 몸체의 처음 문장이 this(…)일 경우에는 해당 생성자를 호출하고 아닐 경우 상위 클래스의 생성자를 호출 후 인스턴스 변수의 초기화 수식(변수명 = 수식;)과 초기화 블록이 실행된다.
생성자의 나머지 몸체가 실행된다.
8. 예제class Circle
{
private double radius = 0;
public Circle(double radius) {
this.radius = radius;
System.out.println("Circle(double radius): radius = " + this.radius);
}
}
class CircleTest
{
private Circle c1 = new Circle(1); // 인스턴스 변수의 초기화 수식(1)
private Circle c2;
{
outer = new Circle(2); // 초기화 블락 (2)
}
public CircleTest() { // 생성자 (3)
System.out.println( "CircleTest()" );
}
public static void main(String args[]) {
new CircleTest();
}
}
[실행결과]
Circle(double radius): radius = 1.0
Circle(double radius): radius = 2.0
CircleTest()
#자바클래스, #자바객체, #클래스, #JAVA객체, #JAVA클래스, #자바, #JAVA, #자바변수, #클래스변수, #인스턴스변수, #자바동영상, #자바동영상강의, #자바강의, #자바강좌, #JAVA, #JAVA동영상, #JAVA강의, #JAVA강좌, #자바교육, #JAVA교육, #자바소스
댓글 없음:
댓글 쓰기