목록이것이 자바다 (108)
충분히 쌓여가는
객체 내부에서 인스턴스 멤버에 접근하기 위해 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; } 위의 중복 ..
매개값으로 객체의 필드를 다양하게 초기화하려면 생성자 오버로딩 Overloading이 필요하다 생성자 오버로딩 매개변수를 달리하는 생성자를 여러개 선언하는 것 매개변수의 타입과 개수, 선언된 순서가 똑같을 경우 매개변수 이름만 바꾸는 것은 생성자 오버로딩이 아니다 Car(String model, String color) { ... } Car(String color, String model) { ... } //오버로딩 아님, 컴파일 에러 발생 생성자가 오버로딩되어 있을 경우, new 연산자로 생성자를 호출할 때 제공되는 매개값의 타입과 수에 따라 실행될 생성자가 결정된다