그냥 두 개를 같다고 보면 된다.
Car 클래스 { 속력 / 색상 / 이름 ....} --> new Car(); <- 인스턴스화 : Car를 만든다!!
public class 이름1
이 하나라도 있을 때public class
만class 이름2
class 이름3
.. 가능하다.
내가만든타입 참조변수명 = new 내가만든타입();
클래스명 참조변수명 = new 클래스명();
: 내가 요런 타입의 클래스를 생성할 건데 그 이름은 객체이름이야.
: 이 클래스타입의 참조변수를 선언하고 -> 오른쪽의 객체(인스턴스)를 생성하여 -> 그 주소를 참조변수에 저장한다.
예)
Tv t = new Tv();
- Tv클래스타입의 참조변수 t 선언
- ✨Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 참조변수t에 저장
- Tv타입은 기본형타입(primitive)이 아니라 참조형타입(reference)이므로 이렇게 객체를 생성해야 한다.
- 마치
String
처럼!
- ✨ 이 참조변수는 리모컨의 역할을 하기에 중요하다
- 참조변수는 '변수'다!!
-> 하나의 값을 가지거나 하나의 저장공간을 가리킨다
-> 참조변수 하나당 객체 하나가 생성된다.
나중에 고치자ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ
class 객체이름 {
변수1, 2 선언
: private 또는 생략가능
public void 메소드이름1(매개변수1, 매개변수2){
this.변수1 = 매개변수1;
: ✨ 해당 전역변수인 변수1에 매개변수1을 넣는다.
this.변수2 = 매개변수2;
}
public void 메소드이름2(){
여기서 this.변수1 과 this.변수2를 사용한다.
}
class Tv {
String color; //색깔
boolean power; //전원상태, 기본이 false=전원이 꺼진 상태
int channel; //채널
void power() {
power = !power; //true로=전원을 켜라
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
1) 변수 사용하기
참조변수.클래스에있는변수명 = 대입할것;
예)t.channel = 7;
2) 매개변수 대입해서 메소드 사용하기
참조변수.클래스에있는메소드(대입할변수1, 대입할변수2);
: 객체에서 해당클래스에있는 메소드에 변수를 넣어 실행할 거야!
예)c1.setOprands(10, 20);
2) 매개변수 필요없는 메소드 사용하기
참조변수.클래스에있는메소드();
예)t.channelDown();
예)c1.sum();
✨✨이 객체명/참조변수는 리모컨의 역할을 한다. 반드시 호출할 때 요거 써야함!!
static
메소드는 객체&참조변수 안해도 된다 -> JAVA_18~
- 만들 때 같은 src폴더 안에 class 생성 -> main메소드 포함 X
- node : 게임/인공위성.. 이차원공간에서의 위치, 좌표
- 따라서 좌표 x, y 필요
- ✨
private
: 외부에서 바꿀 수 없도록(외부패키지와 외부클래스에서 모두 해당 클래스에 접근할 수 없도록)
-> 보안성이 높다.
- private는 외부 패키지와클래스에서 접근불가로 보안이 가능하고 내부에있는 this.x가 매개변수인 int x를 가지고 x로 설정가능하다.- ✨
public
: 외부에서 접근 가능하도록(외부패키지와 외부클래스에서 모두 해당 클래스에 접근할 수 있도록)
- public은 내부 외부 모두 접근 가능하므로 Main에 있는 좌표가 Node에 int x와 int y에 대입이 된다.