복습 순서 |
메모 | ||
ch04> Bus BusMainTest Student StudentMainTest Subway SubwayMainTest UserInfo UserInfoMainTest |
ch05> Bus MainTest Student Subway |
ex1> MainTest1 Warrior Wizard |
버스 클래스 : ctrl + space 기본생성자
package ch04;
public class Bus {
// 버스 번호
// 승객 수
// 수입
int busNumber;
int passengerCount;
int money;
//생성자가 기본 생성자를 만들지 않으면,
// 컴파일러가 기본 생성자를 만들어 준다.
public Bus(int busNumber){
this.busNumber = busNumber;
}
public void take(int money) {
// this.money = money + money;
this.money += money;
passengerCount++;
}
public void showInfo() {
System.out.println(busNumber + "번의 승객은");
System.out.println(passengerCount + "명이고");
System.out.println("현재 수입은 " + money + "원입니다.");
}
}
버스 클래스 사용
package ch04;
public class BusMainTest {
//main function_start of main
public static void main(String[] args) {
// 버스 101, 102 버스를 만들어 주세요
Bus bus101 = new Bus(101);
Bus bus102 = new Bus(102);
//
bus101.showInfo();
System.out.println("-------------------");
bus102.showInfo();
//
bus101.take(1200);
System.out.println("-------------------");
bus101.showInfo();
System.out.println("-------------------");
//bus102 버스에 take 2번 실행 showInfo 확인
bus102.take(1200);
bus102.take(1200);
bus102.showInfo();
}//end_main
}//end_class
학생 클래스
package ch04;
public class Student {
//기본 생성자
//사용자 정의 생성자가 없는 경우에는
//컴파일러가 알아서 기본 생성자를 만들어 준다.
//기본 생성자 모양 :
public Student() {
}// - 생성자 : 객체가 생성되어 s2의 빨간 밑줄이 없어진다.
//생성자 - constructor
//객체를 생성할 때 다음과 같은 모양으로 만들라고 지시하는 것(강제성 부여됨)
//멤버변수
int number;
String name;
int grade;
//생성자 만들기 (개발자가 직접 정의 - 사용자 정의 생성자)
//grade 넣고 코드를 정상 동작하게 수정해 주세요
public Student(int num, String name, int grade) {
number = num; //**매개변수
this.name = name;
this.grade = grade;
//멤버변수와 매개변수의 이름이 같다면 this.키워드를
//사용해서 구분해 주어야 한다.
//this.name, this.grade =>멤버변수
//**매개변수 (parameter)
//매개변수는 메소드, 생성자를 선언할 때,
//어떤 형태로 데이터값이 들어올지 정의해준다.
}//end of St() - 생성자
//메서드 정의
public void showInfo() {
System.out.println(name + "의 학번은 "
+ number + "이고 \n" + grade + "학년입니다." );
}//end of show()
}//end of class
학생 클래스 사용
package ch04;
public class StudentMainTest {
//main function _ start of code
public static void main(String[] args) {
//new Student : 생성자
Student s1 = new Student(1, "홍길동", 3);
//모양 맞추기 Student(int Num)
System.out.println(s1.number);
System.out.println(s1.name);
System.out.println(s1.grade);
s1.showInfo();
System.out.println("-----------------");
//기본 생성자로 객체 생성해보기
//Student s2 = new Student();
//s2.grade = 2;
//s2.name = "이순신";
//s2.number = 2;
Student s2 = new Student(2, "이순신", 2);
System.out.println(s2.number);
System.out.println(s2.name);
System.out.println(s2.grade);
s2.showInfo();
}//end of main
}//end of class
지하철 클래스
package ch04;
public class Subway {
int lineNumber;//호선번호
int passengerCount;//승객수
int money;//수익금
//생성자 - 호선번호를 받는 생성자 만들기
public Subway(int lineNumber) {
this.lineNumber = lineNumber;
}
//메서드 take , showInfo
public void take(int money) {
this.money += money;
passengerCount++;
}
public void showInfo() {
System.out.println(lineNumber + "호선 승객은");
System.out.println(passengerCount + "명이고");
System.out.println("현재 수입은 " + money + "원입니다.");
}
}//end of c
지하철 클래스 사용
package ch04;
public class SubwayMainTest {
public static void main(String[] args) {
// subway 객체 3개 생성
Subway subway1 = new Subway(1);
Subway subway2 = new Subway(2);
Subway subway3 = new Subway(3);
// 각각 take 메서드 실행 후
subway1.take(1500);
subway2.take(1300);
subway2.take(1300);
subway3.take(1300);
subway3.take(1300);
subway3.take(1300);
//showInfo 메서드 실행 시켜 주세요
subway1.showInfo();
System.out.println("---------------");
subway2.showInfo();
System.out.println("---------------");
subway3.showInfo();
}
}
생성자 오버로딩
: 생성자의 매개변수의 유형과 개수가 다르게 하여 같은 이름의 생성자를 여러 개 가질 수 있다.
- 생성자도 메소드와 마찬가지로 여러개를 선언할 수 있다.
- 매개변수의 수와 타입이 다르다면 여러개의 생성자를 선언할 수 있다.
package ch04;
public class UserInfo {
String userId;
String userPassword;
String userName;
String userAddress;
String phoneNumber;
public UserInfo(String userId) {
//super();->지우기
this.userId = userId;
}
public UserInfo(String userId, String userPassword) {
this.userId = userId;
this.userPassword = userPassword;
}
public void showInfo() {
System.out.println("userId : " + userId);
System.out.println("userPassword : " + userPassword);
}
//자동 생성자 만들기
//alt+shift+s > Generate Constructor using Fields > 체크
//생성자 오버로딩
//중요! 생성자는객체가 생성될 때 처음 실행되는 코드이다.
// //1. 기본 생성자를 만들어 주세요
// public UserInfo() {}
//
// //2. userId만 받는 생성자
// public UserInfo(String userId) {
// this.userId =userId;
// }
// //3. userId, userPassword만 받는 생성자
// public UserInfo(String userId, String userPassword) {
// this.userId =userId;
// this.userPassword = userPassword;
// }
// //4. userId, userPassword, userName만 받는 생성자
// public UserInfo(String userId, String userPassword,String userName) {
// this.userId =userId;
// this.userPassword = userPassword;
// this.userName = userName;
// }
// //5. userId, userPassword, userName, userAddress만 받는 생성자
// public UserInfo(String userId, String userPassword,
// String userName, String userAddress) {
// this.userId =userId;
// this.userPassword = userPassword;
// this.userName = userName;
// this.userAddress = userAddress;
// }
// //6. userId, userPassword, userName, userAddress, phoneNumber만 받는 생성자
// public UserInfo(String userId, String userPassword,String userName,
// String userAddress, String phoneNumber) {
// this.userId =userId;
// this.userPassword = userPassword;
// this.userName = userName;
// this.userAddress = userAddress;
// this.phoneNumber =phoneNumber;
// }
}//end of class
오버로딩 생성자 클래스 사용
package ch04;
public class UserInfoMainTest {
public static void main(String[] args) {
UserInfo userInfo = new UserInfo("questzz");
UserInfo userInfo2 = new UserInfo("user02", "1234");
userInfo.showInfo();
userInfo2.showInfo();
}
}
방황하는 학생들과 고통의 교통수단 클래스
버스 클래스 복사 |
학생 클래스 복사 |
지하철 클래스 복사 |
학생들 집에 좀 가 클래스 사용
package ch05;
public class MainTest1 {
//main function_start of code
public static void main(String[] args) {
//버스 만들기
//ctrl + space : 자동완성
Bus bus100 = new Bus(100);
Bus bus200 = new Bus(200);
Bus bus300 = new Bus(300);
Student student1 = new Student("홍길동", 10_000);
Student student2 = new Student("야스오", 50_000);
Student student3 = new Student("티모", 20_000);
Subway subway1 = new Subway(1);
Subway subway2 = new Subway(2);
Subway subway3 = new Subway(3);
//실습
student2.takeBus(bus300);
student3.takeSubway(subway2);
student1.takeSubway(subway1);
student1.takeBus(bus100);
student1.takeBus(bus100);
student2.takeBus(bus100);
student3.takeSubway(subway1);
student2.takeBus(bus200);
student2.takeBus(bus300);
student2.takeSubway(subway3);
bus100.showInfo();
System.out.println("-----------------");
bus200.showInfo();
System.out.println("-----------------");
bus300.showInfo();
System.out.println("-----------------");
subway1.showInfo();
System.out.println("-----------------");
subway2.showInfo();
System.out.println("-----------------");
subway3.showInfo();
System.out.println("-----------------");
student1.showInfo();
System.out.println("-----------------");
student2.showInfo();
System.out.println("-----------------");
student3.showInfo();
//
// //학생이 버스를 탄다.
// student1.takeBus(bus100);
// //상태창 확인
// student1.showInfo();
// System.out.println("-----------------");
//
// bus100.showInfo();
//
// System.out.println("-----------------");
// student2.takeBus(bus100);
// student2.showInfo();
// System.out.println("-----------------");
//
// bus100.showInfo();
//
// //--------------------------------------
// //학생들이 마치고 돌아갑니다.
//
// //s1 지하철을 탑니다.
// student1.takeSubway(subway1);
// System.out.println("-----------------");
// student1.showInfo();
// System.out.println("-----------------");
// subway1.showInfo();
}
}
ex1 과제 : 1. 클래스 설계 하고 사용, 2. getter와 setter 사용
package ex1;
//과제2 : getter 와 setter만들기
public class Warrior {
//멤버변수
//hp, power, name
int hp;
int power;
String name;
//생성자도 만들어 주세요
public Warrior(String name) {
this.name = name;
}
//메서드
//마법사(Wizard)를 공격한다.
//상태창을 꾸며서 볼 수 있는 기능을 만들어 주세요
public void showInfo() {
}
// public static void main(String[] args) {
// returnRandom();
// }
//
// public static void returnRandom() {
//
// Random random = new Random();
// int number = random.nextInt(21);
// System.out.println(number);
// }
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package ex1;
public class Wizard {
//멤버변수
//hp, power,name
//생성자도 만들어 주세요
//메서드
//전사를 공격한다.
//상태창을 꾸머서 볼 수 있는 기능을 만들어 주세요
}
package ex1;
public class MainTest1 {
//프로그램을 만들어 주세요?
}
수업내용
[출처] https://blog.naver.com/devnote1 작성자 devnote1
'코리아 IT아카데미 > Java' 카테고리의 다른 글
8일차 | 배열, 배열리스트, 상속, 오버라이드, 상속할수없는클래스 (0) | 2021.10.27 |
---|---|
7일차 | Marine·Zealot·Zergling설계, 랜덤·캘린더 유틸 사용, 싱글톤 패턴 만들기 (0) | 2021.10.26 |
6일차 | getter, setter, this, static, 마법사·전사 전투 과제에 추가하기 (0) | 2021.10.25 |
4일차 | 함수와 메서드 (0) | 2021.10.21 |
3일차 | if, for(구구단, 이중for문), while, do while, break, continue (0) | 2021.10.20 |