티스토리 뷰

반응형

 

 

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

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함