목록이것이 자바다/06 클래스 (17)
충분히 쌓여가는
정적 필드는 필드 선언과 동시에 초기값을 주는 것이 일반적 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;} ..
객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용할 수 있다 생성자와 메소드의 매개변수 명이 인스턴스 멤버인 필드명과 동일한 경우, 인스턴스 필드임을 강조하고자 할 때 this를 사용한다 public class Car { String model; int speed; Car(String model) { this.model = model; } void setSpeed(int speed) { this.speed = speed; } }
메소드를 호출할 때는 매개변수의 개수에 맞게 매개값을 제공해야 한다 만약 메소드가 가변길이 매개변수를 가지고 있다면 매개변수의 개수와 상관없이 매개값을 줄 수 있다 가변길이 매개변수 선언 int sum(int ... values) { } 가변 길이 매개변수는 메소드 호출 시 매개값을 쉼표로 구분해서 개수와 상관없이 제공할 수 있다 int result = sum(1, 2, 3); int result = sum(1, 2, 3, 4, 5); 매개값들은 자동으로 배열 항목으로 변환되어 메소드에서 사용된다 그렇기 때문에 메소드 호출 시 직접 배열을 매개값으로 제공해도 된다 int result = sum(new int[] {1, 2, 3}); 예제 package ch06.sec08.exam02; public cla..