목록이것이 자바다 (108)
충분히 쌓여가는
클래스가 public class로 선언되면 기본 생성자도 public가 붙지만, 클래스가 public 없이 class로만 선언되면 기본 생성자에도 public이 붙지않는다 개발자가 명시적으로 선언한 생성자가 있다면 컴파일러는 기본 생성자를 추가하지 않는다 개발자가 생성자를 선언하는 이유는 객체를 다양하게 초기화하기 위해서이다 생성자 선언 클래스(매개변수, ...) { //객체의 초기화 코드 } 생성자는 메소드와 비슷한 모양을 가지고 있으나, return 타입이 없고 클래스 이름과 동일하다 매개변수는 new 연산자로 생성자를 호출할 때 매개값을 생성자 블록 내부로 전달하는 역할을 한다 예를 들어 Car 생성자를 호출할 때 3개의 매개값을 블록 내부로 전달한다고 가정 Car myCar = new Car("그..
new 연산자는 객체를 생성한 후 연이어 생성자 Constructor을 호출해서 객체를 초기화하는 역할을 한다 객체 초기화: 필드 초기화를 하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것 클래스 변수 = new 클래스(); 생성자가 성공적으로 실행이 끝나면 new 연산자는 객체의 주소를 return 한다 return된 주소는 클래스 변수에 대입되어 객체의 필드나 메소드에 접근할 때 이용된다
필드와 로컬(변수)의 차이점 로컬(변수)는 생성자와 메소드 블록에서 선언되며 생성자와 메소드 호출 시에만 생성되고 사용된다 필드는 클래스 블록에서 선언되며, 객체 내부에서 존재하고 객체 내 외부에서 사용가능하다 구분 필드 로컬(변수) 선언 위치 클래스 선언 블록 생성자, 메소드 선언 블록 존재 위치 객체 내부에 존재 생성자, 메소드 호출 시에만 존재 사용 위치 객체 내외부 어디든 사용 생성자, 메소드 블록 내부에서만 사용 초기값을 제공하지 않을 경우 필드는 객체 생성 시 자동으로 기본값으로 초기화된다 byte 0 short 0 int 0 long 0L char \u0000 (빈 공백) float 0.0F double 0.0 boolean false 배열 null 클래스(String 포함) null 인터페..
클래스의 두 가지 용도 라이브러리(library) 클래스 : 실행할 수 없으며 다른 클래스에서 이용하는 클래스 실행 클래스 : main() 메소드를 가지고 있는 실행 가능한 클래스 라이브러리 package ch06.sec04; public class Student { } 실행 클래스 package ch06.sec04; public class StudentExample { public static void main(String[] args) { Student s1 = new Student(); System.out.println("s1 변수가 Student 객체를 참조"); Student s2 = new Student(); System.out.println("s2 변수가 Student 객체를 참조"); } }