728x90
반응형
SMALL
public class Car {
//1.멤버 변수(field) : non-static(instance variable) / static(class variable)
private int speed;//instance variable. private(Car 내에서만 접근 가능. 정보은닉,
//상속 받아도 불가)
private boolean stop;
private static int count;//class variable, object 공유 변수
private final int year; // instance 변수, final은 한번 세팅할수있다. 변경불가.(생성자에서, 또는 선언시)
private static final String COMPANY = "현대자동차";//상수
//2. 생성자 메소드 : new 시에 자동호출되는 메소드
public Car() {
//year = 2021;
//instance 변수 자동초기화 : speed=0, stop = false;
this(0,false,2021);//밑의 생성자 호출.생성자의 overloading 사용시에 this 사용.
}
public Car(int speed, boolean stop, int year) {
//매개변수와 멤버변수의 이름이 충돌할 때 구별하기 위해 this를 사용한다.
this.speed = speed;
this.stop = stop;
this.year = year;
count++;
System.out.println(this.getClass().getSimpleName()+"생성");
}
//3.일반 메소드
//getter,setter : 외부에서 값을 읽거나 수정 시 사용(변수들이 private이기 때문)
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
}
public static int getCount() {
return count;
}
/*
* private static void setCount(int count) { Car.count = count; }
*/
public int getYear() {
return year;
}
//static method : 객체 생성 없이도 호출이 가능하다.
public static String getCompany() {
return COMPANY;
}
public void print() {
System.out.println("------Car 정보------");
System.out.println("speed : " + speed);
System.out.println("stop : " + stop);
System.out.println("year : " + year);
System.out.println("count : " + count);
System.out.println("company : " + COMPANY);
}
//4. instance block, static block
{
System.out.println("instance 생성시 마다 수행된다. 생성자와 비슷");
System.out.println("**********************************");
//굳이....생성자에 써도 된다. 잘 안쓴다.
}
static {
System.out.println("class가 메모리에 로드 시, 즉 딱 한번 시행");
System.out.println("**********************************");
}
//5.innerClass : class안에 class
}
//class : object를 만드는 틀이다. template, 설계도
/*
object : class를 이용해서 만든 독립된 개체이다.
*/
public class CarTest {
public static void main(String[] args) {
//Class Method 호출
System.out.println(Car.getCompany());//new 안해도 사용가능
System.out.println(Car.getCount());
Car c1 = new Car();
//instance method 호출
System.out.println(c1.getSpeed());
c1.print();
Car c2 = new Car(100, true, 2020);
c2.print();
}
}
728x90
반응형
LIST
'JAVA' 카테고리의 다른 글
상속-기본예제 (0) | 2021.03.29 |
---|---|
Java - If 문의 사용 (0) | 2021.03.29 |
DTO, Static, Singleton 그리고 접근 제한자 (0) | 2021.03.17 |
자바로 숫자야구(Bulls and Cows)게임 만들기 (0) | 2021.03.17 |
자바- 조건문과 반복문 (0) | 2021.03.13 |