[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++;
}
}
Author And Source
이 문제에 관하여([Java & SpringBoot로 시작하는 웹 프로그래밍] 2주차 학습 - 3 (this, 객체간 협력, static 변수,메서드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@moonjang/Java-SpringBoot로-시작하는-웹-프로그래밍-2주차-학습-3-this-객체간-협력-static-변수메서드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)