1.인스턴스 맴버
멤버변수에서 static이 붙지 않는 것을 의미한다.
객체 생성이후 객체를 통해 객체 참조 연산자(.)를 통해 사용이 가능하다.
package a7_Class_instance;
public class Car {
String name;
Car(String name){
this.name=name;
}
void setName(String name) {
this.name = name;
}
}
package a7_Class_instance;
public class a7_class {
public static void main(String[] args){
Car car1=new Car("방방이");
car1.setName("빙빙이");
System.err.println(car1.name);
}
}
//출력
빙빙이
2.정적 맴버
멤버에서 static이 붙은 것을 의미한다.
객체를 생성하지 않아도 클래스에 ' . ' 을 이용하여 접근할수있다.
정적메소드는 객체가 없어도 실행되기 때문에 this 사용이 불가능하다
package a7_Class_instance;
public class Car {
static int tire_num=4;
String name;
Car(String name){
this.name=name;
}
void setName(String name) {
this.name = name;
}
}
package a7_Class_instance;
public class a7_class {
public static void main(String[] args){
Car car1=new Car("방방이");
System.out.println(car1.name);
System.out.println(Car.tire_num);
}
}
//출력
방방이
4
3. 싱글톤
프로그램에서 단 한개의 객체만 만들수 있도록 보장하는 경우 사용한다.
생성자가 private로 선언되었기에 외부에서 생성자 호출이 불가하고
getInstance()를 호출해서 정적필드에서 참조하고있는 자신의 객체를 리턴한다.
class Car2 {
private static Car2 singleton = new Car2();
private Car2(){
}
static Car2 getInstance(){
return singleton;
}
}
package a7_Class_instance;
public class a7_class {
public static void main(String[] args){
Car2 car2=Car2.getInstance();
Car2 car3=Car2.getInstance();
System.out.println(car2==car3);
}
}
//출력
true
4.final 필드,상수
final로 선언된 필드는 초기값이 저장되면 프로그램 실행도중 수정이 불가능해진다.
필드 선언시 , 생성자에서 초기값을 지정해줘야한다.
final static 으로 선언된 필드는 상수를 표현하며, 해당필드는 객체가 아닌 클래스에만 존재한다.
클래스에 '.'을 이용하여 접근할수있다.
public class Car {
final int people=4;
final static int Tire_num=4;
String name;
void setName(String name) {
this.name = name;
}
}
package a7_Class_instance;
public class a7_class {
public static void main(String[] args){
Car car1=new Car("방방이");
System.out.println(car1.people);
System.out.println(Car.Tire_num);
}
}
//출력
4
4
'Language > JAVA' 카테고리의 다른 글
[JAVA] 패키지, 접근 제한자, getter,setter (0) | 2024.05.15 |
---|---|
[JAVA] 메소드 (0) | 2024.05.15 |
[JAVA] 클래스 필드, 생성자 (0) | 2024.05.15 |