객체가 생성될 때 호출되는 객체 초기화 메소드
매개 변수가 없는 생성자
(따로 지정하지 않으면 컴파일러가 자동 생성)
🔴 주의할 점 : 매개 변수가 있는 생성자를 사용한다면, 기본생성자를 직접 입력해줘야 함.
객체 자신을 가리키는 참조 변수
(컴파일러에서 자동 생성하지만, 혼돈을 막기 위해 적어라)
다른 생성자를 의미하며, 다른 생성자를 호출할 때 사용
🔴 주의할 점 : this()는 생성자 안에서 맨위에 위치해야 함.
class TV {
String name;
int year;
int size;
public TV(String name, int year, int size) {
this.name = name;
this.year = year;
this.size = size;
}
public void show() {
System.out.println(name + "에서 만든 " + year + "년형 " + size + "인치 TV");
}
}
public class practice8_p10 {
public static void main(String[] args) {
TV myTV = new TV("LG", 2017, 32);
myTV.show();
}
}
패키지
: 비슷한 성격의 클래스를 묶어놓은 것
종류
- 내장 패키지 : 자바에서 기본적으로 제공
- 사용자 정의 패키지 : 내가 직접 만든 패키지
import graphics.*;
: graphics 안에 있는 모든 클래스를 불러옴
🔴 주의할 점 : 같은 패키지 안에 동일한 이름의 클래스가 있으면 문제가 됨
패키지 이름 짓는 법
- 패키지 이름은 모두 소문자
- 인터넷 도메인 이름의 역순으로 이름을 구성
- 이름 끝에 주체 또는 팀의 이름 추가
가상 기계가 클래스를 찾는 방법
- cmd에서 class파일이 있는 경로로 이동 ->
javac 클래스명.class
로 생성 ->java 클래스명
으로 실행set classpath=경로
로 이동 ->javac 클래스명.class
로 생성 ->java 클래스명
으로 실행java -classpath 경로 클래스명
실행(이때 이미 생성되어 있어야함)
종류
- public
- protected
- default
- private
클래스 정의 대상 : public
, default
인스턴스 변수와 메소드 대상 : public
, protected
, default
, private
public
: 어디서든 객체 생성 가능
default
: 동일패키지로 묶인 클래스내에서만 생성 가능
(default
로 클래스 생성 후 다른 패키지에서 import나 객체 생성을 하게 되면 오류)
private
: 직접적인 접근이 불가능
(자신의 내부 클래스에서만 접근 가능)
public
과 default
의 내용은 클래스 대상과 동일
class Circle {
private double rad = 10;
final double PI = 3.14;
public Circle(double r) {
setRad(r);
}
public void setRad(double r) {
if(r < 0) {
rad = 0;
return;
}
rad = r;
}
public double getRad() {
return rad;
}
public double getArea() {
return Math.PI * rad * rad;
}
}
public class practice10_p10 {
public static void main(String[] args) {
Circle c = new Circle(1.5);
System.out.println(c.getArea());
c.setRad(2.5);
System.out.println(c.getArea());
c.setRad(-3.3);
System.out.println(c.getArea());
// c.rad = -4.5;
System.out.println(c.getArea());
}
}
🟢 private
로 변수를 설정했기 때문에 c.rad
와 같은 접근이 불가능함.