목록이것이 자바다 (108)
충분히 쌓여가는
객체를 생성하기 위해 생성자를 어디에서나 호출할 수 있는 것은 아니다 생성자는 public, default, private 접근 제한을 가질 수 있다 public 모든 패키지에서 생성자를 호출할 수 있다 = 모든 패키지에서 객체를 생성할 수 있다 같은 패키지에서만 생성자를 호출할 수 있다 = 같은 패키지에서만 객체를 생성할 수 있다 private 클래스 내부에서만 생성자를 호출할 수 있다 = 클래스 내부에서만 객체를 생성할 수 있다 필드와 메소드도 어디에서나 읽고 호출할 수 있는 것은 아니다 필드와 메소드는 public, default, private 접근 제한을 가질 수 있다 public 모든 패키지에서 필드를 읽고 변경할 수 있다 = 모든 패키지에서 메소드를 호출할 수 있다 같은 패키지에서만 필드를 ..
정적 메소드와 정적 블록은 객체가 없어도 실행된다는 특징 때문에 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수 없다 또한 객체 자신의 참조인 this도 사용할 수 없다 public class ClassName { int field1; void method1() {...} //정적 필드와 메소드 선언 static int field2; static void method2 { ... } //정적 블록 선언 static { field1 = 10; //컴파일 에러 method1(); //컴파일 에러 field2 = 10; method2(); } //정적 메소드 선언 staitc void method3() { this.filed1 = 10; //컴파일 에러 this.method1(); //컴파일 에러 fiel..
정적 필드는 필드 선언과 동시에 초기값을 주는 것이 일반적 static double pi = 3.14159; 하지만 복잡한 초기화 작업이 필요하다면 정적 블록(static block)를 이용해야 한다 static { ... } 정적 블록은 클래스가 메모리로 로딩될 때 자동으로 실행된다 정적 블록이 클래스 내부에 여러 개가 선언되어 있을 경우 선언된 순서대로 실행된다 정적 필드는 객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 실행하지 않는다(생성자는 객체 생성 후 실행되기 때문) company와 model은 선언 시 초기값을 줌 info는 정적 블록에서 company와 model을 연결하여 초기값을 줌 package ch06.sec10.exam02; public class Televis..
자바는 클래스 로더를 이용해서 클래스를 메소드 영역에 저장하고 사용한다 정적static 멤버란 메소드 영역의 클래스에 고정적으로 위치하는 멤버 따라서 정적 멤버는 객체를 생성할 필요 없이 클래스를 통해 바로 사용 가능하다 정적 멤버 선언 static 키워드를 추가 public class 클래스 { //정적 필드 선언 static 타입 필드 = 초기값; //정적 메소드 static 리턴타입 메소드(매개변수, ...) {...} } public class Calculator { String color; static double pi = 3.14159; } public class Calculator { String color; static int plus(int x, int y) {return x + y;} ..