목록분류 전체보기 (639)
충분히 쌓여가는
자바는 클래스 로더를 이용해서 클래스를 메소드 영역에 저장하고 사용한다 정적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..
생성자 오버로딩이 많아질 경우 생성자 간의 중복된 코드가 발생할 수 있다 매개변수의 수만 달리하고 필드 초기화 내용이 비슷한 생성자에서 이러한 중복 코드를 많이 볼 수 있다 Car(String model) { this.model = model; this.color = "은색"; this.maxSpeed = 250; } Car(String model, String color) { this.model = model; this.color = color; this.maxSpeed = 250; } Car(String model, String color, int maxSpeed) { this.model = model; this.color = color; this.maxSpeed = maxSpeed; } 위의 중복 ..