[Java & SpringBoot로 시작하는 웹 프로그래밍] 2주차 학습 - 3 (this, 객체간 협력, static 변수,메서드)

this의 역할

  • 자신의 메모리를 가리킴
  • 생성자에서 다른 생성자를 호출 함
  • 인스턴스 자신의 주소를 반환

생성자에서 다른 생성자를 호출

  • 생성자안에서는 다른 생성자를 호출할 수 있다.
    EX)
public class Person {
  private int name;
  private int age;
  
  public Person() {
    this("이름 없음",1);
  }
  
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

}

자신의 주소를 반환하는 this

EX)

public Person getPerson() {
  return this;
}

객체 간 협력

  • 객체 지향 프로그램은 객체를 정의 하고 객체간의 협력을 구현한 프로그램
  • 학생이 지하철이나 버스를 타고 학교 가는 과정에서 일어나는 협력

예시1) Edward는 늦게 일어나 학교에 지각을 했습니다. 택시를 타고 10000원을 지불하였습니다. 이 상황을 코드에 추가해 보세요.

Student student = new Student("Edward",1,20000);
Vehicle taxi = new Taxi(100);
int DISTANCE_FROM_SCHOOL = 100;

student.takeVehicle(taxi,DISTANCE_FROM_SCHOOL);

System.out.println("남은 돈:" + student.getMoney());

예시2) 아침 출근길에 김 졸려 씨는 4000원을 내고 별다방에서 아메리카노를 사 마셨습니다.
이 피곤 씨는 콩다방에서 4500원을 내고 라떼를 마셨습니다. 코드로 구현해보시오

Person kim = new Person("김","졸려",10000);
Person lee = new Person("이","피곤",15000);
CoffeeShop starShop = new CoffeeShop("별다방");
CoffeeShop beanShop = new CoffeShop("콩다방");

kim.buyCoffee(startShop,"americano");
lee.buyCoffee(beanShop,"latte");

System.out.println("김졸려의 남은 돈:" + kim.getMoney());
System.out.println("이피곤의 남은 돈:" + lee.getMoney());

static 변수

  • 여러 인스턴스가 하나의 값을 공유할 필요가 있음
  • static 변수는 처음 프로그램이 로드 될 때 데이터 영역에 생성 됨
  • 인스턴스의 생성과 상관 없이 사용할 수 있으므로 클래스 이름으로 참조
  • 클래스 변수, 정적 변수라고도 함
class A {
   pulblic static int num = 0;
   
   public static void plusNum() {
     num++;
   }
}

static 메서드

  • static 변수를 위한 기능을 제공하는 static 메서드
  • static 메서드에서는 인스턴스 변수를 사용할 수 없음
  • 클래스 이름으로 참조하여 사용하는 메서드
  • 클래스 메서드, 정적 메서드라고도 함
class B {
   pulblic static int num = 0;
   
   public static void plusNum() {
     num++;
   }
}

좋은 웹페이지 즐겨찾기