반응형
11. 클래스와 객체 - 11. this에 대하여
| this 의 역할
자신의 메모리를 가르킨다.
생성자에서 다른 생성자를 호출한다.
인스턴스 자신의 주소를 반환한다.
| 생성자에서 다른 생성자를 호출
public Person(){
this("이름 없음",1);
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
package thisex;
public class Person {
String name;
int age;
public Person() {
this("이름없음", 1); //default : 이친구가 일빠여야하고 나머지가 일빠면 안됨
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void showInfo() {
System.out.println(name +"," + age);
}
public Person getSelf() {
return this;
}
}
© 2020 GitHub, Inc.
package thisex;
public class PersonTest {
public static void main(String[] args) {
Person personNoname = new Person();
personNoname.showInfo();
Person personLee = new Person("Lee", 20);
personLee.showInfo();
System.out.println(personLee);
Person p = personLee.getSelf();
System.out.println(p);
}
}
12. 클래스와 객체 - 12. 객체간 협력
| 객체 간 협력
객체 지형 프로그램은 객체를 정의하고 객체간의 협력을 구현한 프로그램
학생이 지하철이나 버스를 타고 학교를 가는 과정에서 일어나는 협렵
package cooperation;
public class Student {
String studentName;
int grade;
int money;
public Student(String studentName, int money) {
this.studentName = studentName;
this.money = money;
}
public void takeBus(Bus bus) {
bus.take(1000);
this.money -= 1000;
}
public void takeSubway(Subway subway) {
subway.take(1200);
this.money -= 1200;
}
public void takeTaxi(Taxi taxi) {
taxi.take(10000);
this.money -= 10000;
}
public void showInfo() {
System.out.println(studentName +"님이 남은 돈은 " + money + "원 입니다");
}
}
package cooperation;
public class Bus {
int busNumber;
int passengerCount;
int money;
public Bus(int busNumber) {
this.busNumber = busNumber;
}
public void take(int money) { //승차
this.money += money;
passengerCount++;
}
public void showBusInfo() {
System.out.println(busNumber + "번 버스의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
}
}
package cooperation;
public class Subway {
int lineNumber;
int passengerCount;
int money;
public Subway(int lineNumber) {
this.lineNumber = lineNumber;
}
public void take(int money) {
this.money += money;
passengerCount++;
}
public void showSubwayInfo() {
System.out.println(lineNumber + "번 지하철의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
}
}
package cooperation;
public class TakeTransTest {
public static void main(String[] args) {
Student studentJ = new Student("James", 5000);
Student studentT = new Student("Tomas", 10000);
Bus bus100 = new Bus(100);
Bus bus500 = new Bus(500);
Subway subwayGreen = new Subway(2);
Subway subwayBlue = new Subway(4);
studentJ.takeBus(bus100);
studentT.takeSubway(subwayGreen);
studentJ.showInfo();
studentT.showInfo();
bus100.showBusInfo();
bus500.showBusInfo();
subwayGreen.showSubwayInfo();
Student studentE = new Student("Edward", 20000);
Taxi wellTaxi = new Taxi("Àß °£´Ù ¿î¼ö");
studentE.takeTaxi(wellTaxi);
studentE.showInfo();
wellTaxi.showTaxInfo();
}
}
자바 인강이 듣고 싶다면 => https://bit.ly/3ilMbIO
반응형
'스프링, 자바' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 18회차 미션 (0) | 2020.08.27 |
---|---|
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 17회차 미션 (0) | 2020.08.26 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 15회차 미션 (0) | 2020.08.24 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 14회차 미션 (0) | 2020.08.23 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 13회차 미션 (0) | 2020.08.22 |