2021/01/14 - [분류 전체보기] - [자바 기초] 22일차 2 - 클래스, 객체
com.day04
Car.java
Car 클래스 만들기
이렇게 오류가 난다. 오류 해결하기!
package com.day04;
public class Car {
String name; //속성 정의
String carColor;
int speed;
public void speedUp(int speed) { //함수
this.speed += speed;
}
public void speedDown(int speed) { //함수
this.speed -= speed;
}
public void getSpeed() {
System.out.println("속도 : " + speed);
}
public static void main(String[] args) {
Car c1 = new Car();
c1.name="소나타"; //속성 정의해주어야 함
c1.carColor="흰색";
c1.speedUp(30); //속도를 올린다.
c1.speedDown(10); //속도를 내린다.
c1.getSpeed(); //속도를 알려줌 ==> 속도 : 20
}
}
속도 : 20
c2 만들어보기
오류나지 않도록 하기
Car는 생성자 -> 인자 2개 짜리가 없어 오류가 나는 것
public Car(String name, String Color) {
}
해주니까 갑자기
요기서 오류가 난다? 디폴트 생성자라서 Car c1 = new Car(); 는 생략 가능했는데
다른 유형이 등장했으므로 public Car () { } 해주어야 함
package com.day04;
public class Car {
String name; //속성 정의
String carColor;
int speed;
public Car() {
}
public Car(String name, String Color) {
}
public void speedUp(int speed) { //함수
this.speed += speed;
}
public void speedDown(int speed) { //함수
this.speed -= speed;
}
public void getSpeed() {
System.out.println("속도 : " + speed);
}
public static void main(String[] args) {
Car c1 = new Car();
c1.name="소나타"; //속성 정의해주어야 함
c1.carColor="흰색";
c1.speedUp(30); //속도를 올린다.
c1.speedDown(10); //속도를 내린다.
c1.getSpeed(); //속도를 알려줌 ==> 속도 : 20
Car c2 = new Car("내 차", "black"); //Car는 생성자 -> 인자 2개 짜리가 없어 오류가 나는 것
c1.speedUp(50);
c1.getSpeed();
}
}
public void Car () {
} -> 이렇게 쓰면 안됨. 이렇게 되면 생성자가 아니라 메서드가 되어버림
package com.day04;
public class Car {
String name; //속성 정의
String carColor;
int speed;
public Car() { //생성자 클래스 이름, void를 쓰면 안 됨 -> 역할 : 멤버변수 초기화
}
public Car(String name, String Color) {
}
public void speedUp(int speed) { //함수
this.speed += speed;
}
public void speedDown(int speed) { //함수
this.speed -= speed;
}
public void getSpeed() {
System.out.println("속도 : " + speed);
}
public static void main(String[] args) {
Car c1 = new Car();
c1.name="소나타"; //속성 정의해주어야 함
c1.carColor="흰색";
c1.speedUp(30); //속도를 올린다.
c1.speedDown(10); //속도를 내린다.
c1.getSpeed(); //속도를 알려줌 ==> 속도 : 20
Car c2 = new Car("내 차", "black"); //Car는 생성자 -> 인자 2개 짜리가 없어 오류가 나는 것
c2.speedUp(50);
c2.getSpeed();
}
}
속도 : 20
속도 : 50
Triangle 넓이를 구해보자. 하나의 파일에 클래스 여러개 두기
TriangleMain.java
오류나지 않게 만들어주기
public은 1번만 써주어야 하고 클래스가 여러개 일 때 파일명은 반드시 main을 가진 클래스 명으로 해주어야 함
package com.day04;
class Triangle {
// 삼각형 넓이 = 밑변 * 높이 / 2
int bottom;
int height;
public Triangle(int bottom, int height) { // 생성자 생성
this.bottom = bottom;
this.height = height;
}
public double getArea() { // 돌려주는 값은 소수점까지 생각해서 double형
// System.out.println(bottom*height/2);
return bottom * height / 2; // return을통해 넓이의 결과값을 돌려줘야함
}
public void setBottom(int bottom) {
this.bottom = bottom;
}
public void setHeight(int height) {
this.height = height;
}
}
public class TriangleMain {
public static void main(String[] args) {
Triangle t1 = new Triangle(10, 20); // 밑변, 높이
System.out.println("삼각형의 넓이 : " + t1.getArea()); // 수행한 결과값을 여기에 출력하라
t1.setBottom(15); // 삼각형 밑변 길이
t1.setHeight(22); // 삼각형 높이
System.out.println("삼각형의 넓이 : " + t1.getArea());
}
}
삼각형의 넓이 : 100.0
삼각형의 넓이 : 165.0
Student.java
package com.day04;
public class Student {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 100, 80, 70);
}
}
package com.day04;
public class Student {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 100, 80, 70);
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
System.out.println(s1.name);
System.out.println(s1.kor);
System.out.println(s1.math);
System.out.println(s1.eng);
System.out.println(s1.getTotal());
System.out.println(s1.getAverage());
}
}
오류 나지 않도록 만들어 주기
package com.day04;
public class Student {
String name;
int kor;
int math;
int eng;
public Student(String name, int kor, int math, int eng) {
this.name = name;
this.kor = kor;
this.math = math;
this.eng = eng;
}
public int getTotal() {
return kor+math+eng;
}
public double getAverage() {
return (kor+math+eng)/3;
}
public static void main(String[] args) {
Student s1 = new Student("홍길동", 100, 80, 70);
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
System.out.print(s1.name+"\t");
System.out.print(s1.kor+"\t");
System.out.print(s1.math+"\t");
System.out.print(s1.eng+"\t");
System.out.print(s1.getTotal()+"\t");
System.out.print(s1.getAverage()+"\t");
}
}
이름 국어 수학 영어 총점 평균
홍길동 100 80 70 250 83.0
주석 설명 추가
package com.day04;
public class Student {
String name; //아래 main 속 멤버변수 정의
int kor, math, eng; //아래 main 속 멤버변수 정의
public Student(String name, int kor, int math, int eng) { //생성자 만들고 인자 넣어줌
this.name = name; //이것들을 세팅해주지 않으면 다 기본값 null, 0 나옴
this.kor = kor; //내가 정한 점수를 this. 에 입력해주는 과정
this.math = math; //여기에 이런 식으로 적어주어야 함
this.eng = eng;
}
public int getTotal() { //만들어줌2 -> 합계 구하는 내용 -> public int
return kor+math+eng; //결과값 돌려줌 -> int형
}
public double getAverage() { //만들어줌3
return (kor+math+eng)/3; //결과값 돌려줌 -> 평균이니까 double형
//return getTotal()/3; 이렇게 적어주어도 된다.
}
public static void main(String[] args) {
Student s1 = new Student("홍길동", 100, 80, 70); //생성자 만들어주기
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
System.out.print(s1.name+"\t");
System.out.print(s1.kor+"\t");
System.out.print(s1.math+"\t");
System.out.print(s1.eng+"\t");
System.out.print(s1.getTotal()+"\t"); //만들어주기2 -> 결과값 받아야 함
System.out.print(s1.getAverage()+"\t"); //만들어주기3 -> 결과값 받아야 함
}
}
이름 국어 수학 영어 총점 평균
홍길동 100 80 70 250 83.0
프로그램은 정해진 것이 없고 우리가 가장 최적화 된 걸 만드는 것이다.
s2 것도 출력해보자
package com.day04;
public class Student {
String name; //아래 main 속 멤버변수 정의
int kor, math, eng; //아래 main 속 멤버변수 정의
public Student(String name, int kor, int math, int eng) { //생성자 만들고 인자 넣어줌
this.name = name; //이것들을 세팅해주지 않으면 다 기본값 null, 0 나옴
this.kor = kor; //내가 정한 점수를 this. 에 입력해주는 과정
this.math = math; //여기에 이런 식으로 적어주어야 함
this.eng = eng;
}
public int getTotal() { //만들어줌2 -> 합계 구하는 내용 -> public int
return kor+math+eng; //결과값 돌려줌 -> int형
}
public double getAverage() { //만들어줌3
return (kor+math+eng)/3; //결과값 돌려줌 -> 평균이니까 double형
//return getTotal()/3; 이렇게 적어주어도 된다.
}
public static void main(String[] args) {
Student s1 = new Student("홍길동", 100, 80, 70); //생성자 만들어주기
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
System.out.print(s1.name+"\t");
System.out.print(s1.kor+"\t");
System.out.print(s1.math+"\t");
System.out.print(s1.eng+"\t");
System.out.print(s1.getTotal()+"\t"); //만들어주기2 -> 결과값 받아야 함
System.out.print(s1.getAverage()+"\t"); //만들어주기3 -> 결과값 받아야 함
System.out.println();
System.out.print(s2.name+"\t");
System.out.print(s2.kor+"\t");
System.out.print(s2.math+"\t");
System.out.print(s2.eng+"\t");
System.out.print(s2.getTotal()+"\t");
System.out.print(s2.getAverage()+"\t");
}
}
이름 국어 수학 영어 총점 평균
홍길동 100 80 70 250 83.0
이순신 50 60 70 180 60.0
조금 더 간단하게 써주기 위해 info() 에서 불러줄 내용들 적어주기
package com.day04;
public class Student {
String name; //아래 main 속 멤버변수 정의
int kor, math, eng; //아래 main 속 멤버변수 정의
public Student(String name, int kor, int math, int eng) { //생성자 만들고 인자 넣어줌
this.name = name; //이것들을 세팅해주지 않으면 다 기본값 null, 0 나옴
this.kor = kor; //내가 정한 점수를 this. 에 입력해주는 과정
this.math = math; //여기에 이런 식으로 적어주어야 함
this.eng = eng;
}
public int getTotal() { //만들어줌2 -> 합계 구하는 내용 -> public int
return kor+math+eng; //결과값 돌려줌 -> int형
}
public double getAverage() { //만들어줌3
return (kor+math+eng)/3; //결과값 돌려줌 -> 평균이니까 double형
//return getTotal()/3; 이렇게 적어주어도 된다.
}
public void info() {
System.out.print(name+"\t");
System.out.print(kor+"\t");
System.out.print(math+"\t");
System.out.print(eng+"\t");
System.out.print(getTotal()+"\t");
System.out.print(getAverage()+"\t");
System.out.println();
}
public static void main(String[] args) { //실행부 main
Student s1 = new Student("홍길동", 100, 80, 70); //생성자 만들어주기
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
s1.info();
s2.info();
}
}
같은 결과 도출됨
이름 국어 수학 영어 총점 평균
홍길동 100 80 70 250 83.0
이순신 50 60 70 180 60.0
학생 1명 추가 -> 아직 시험을 안쳐서 이름만 있음
package com.day04;
public class Student {
String name; //아래 main 속 멤버변수 정의
int kor, math, eng; //아래 main 속 멤버변수 정의
public Student(String name, int kor, int math, int eng) { //생성자 만들고 인자 넣어줌
this.name = name; //이것들을 세팅해주지 않으면 다 기본값 null, 0 나옴
this.kor = kor; //내가 정한 점수를 this. 에 입력해주는 과정
this.math = math; //여기에 이런 식으로 적어주어야 함
this.eng = eng;
}
public int getTotal() { //만들어줌2 -> 합계 구하는 내용 -> public int
return kor+math+eng; //결과값 돌려줌 -> int형
}
public double getAverage() { //만들어줌3
return (kor+math+eng)/3; //결과값 돌려줌 -> 평균이니까 double형
//return getTotal()/3; 이렇게 적어주어도 된다.
}
public void info() {
System.out.print(name+"\t");
System.out.print(kor+"\t");
System.out.print(math+"\t");
System.out.print(eng+"\t");
System.out.print(getTotal()+"\t");
System.out.print(getAverage()+"\t");
System.out.println();
}
public static void main(String[] args) { //실행부 main
Student s1 = new Student("홍길동", 100, 80, 70); //생성자 만들어주기
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
s1.info();
s2.info();
Student s3 = new Student("강감찬");
s3.info();
}
}
오류나지 않게 만들기
public Student(String name) {
this.name = name;
}
이름만 있는 Student 만들기
package com.day04;
public class Student {
String name; //아래 main 속 멤버변수 정의
int kor, math, eng; //아래 main 속 멤버변수 정의
public Student(String name, int kor, int math, int eng) { //생성자 만들고 인자 넣어줌
this.name = name; //이것들을 세팅해주지 않으면 다 기본값 null, 0 나옴
this.kor = kor; //내가 정한 점수를 this. 에 입력해주는 과정
this.math = math; //여기에 이런 식으로 적어주어야 함
this.eng = eng;
}
public Student(String name) { // s3를 위한 1개짜리 생성자 생성
this.name = name;
}
public int getTotal() { //만들어줌2 -> 합계 구하는 내용 -> public int
return kor+math+eng; //결과값 돌려줌 -> int형
}
public double getAverage() { //만들어줌3
return (kor+math+eng)/3; //결과값 돌려줌 -> 평균이니까 double형
//return getTotal()/3; 이렇게 적어주어도 된다.
}
public void info() {
System.out.print(name+"\t");
System.out.print(kor+"\t");
System.out.print(math+"\t");
System.out.print(eng+"\t");
System.out.print(getTotal()+"\t");
System.out.print(getAverage()+"\t");
System.out.println();
}
public static void main(String[] args) { //실행부 main
Student s1 = new Student("홍길동", 100, 80, 70); //생성자 만들어주기
Student s2 = new Student("이순신", 50, 60, 70);
System.out.println("이름\t국어\t수학\t영어\t총점\t평균");
s1.info();
s2.info();
Student s3 = new Student("강감찬"); //오류나지 않게 만들기 -> 생성자 1개짜리 생성
s3.info();
}
}
이름 국어 수학 영어 총점 평균
홍길동 100 80 70 250 83.0
이순신 50 60 70 180 60.0
강감찬 0 0 0 0 0.0
이름 제외하고 나머지는 다 기본값으로 나옴
TV.java
package com.day04;
public class TV {
public static void main(String[] args) {
TV tv1 = new TV("LG", 2020, 60);
tv1.show(); // LG에서 만든 2020년 형 60인치
TV tv2 = new TV("삼성", 2021, 75);
tv2.show();
}
}
오류 나지 않도록 만들기
package com.day04;
public class TV {
String Cor;
int Year, Inch; //전역 변수 필요
public TV(String Cor, int Year, int Inch) { //생성자 TV(인자, 인자, 인자)
this.Cor = Cor; //내가 ()에 입력해 준 걸 내 전역변수에 담음
this.Year = Year;
this.Inch = Inch;
}
public void show() {
System.out.println(Cor + "에서 만든 " + Year + "년 형 " + Inch + "인치");
}
public static void main(String[] args) {
TV tv1 = new TV("LG", 2020, 60); //생성자 TV 만들어야 함
tv1.show(); // LG에서 만든 2020년 형 60인치
TV tv2 = new TV("삼성", 2021, 75);
tv2.show();
}
}
LG에서 만든 2020년 형 60인치
삼성에서 만든 2021년 형 75인치
Circle.java
package com.day04;
public class Circle {
public static void main(String[] args) {
Circle c1 = new Circle("피자", 10); //피자, 반지름
c1.getArea();
Circle c2 = new Circle(); //도넛, 반지름
c2.name = "도넛";
c2.r = 2;
c2.getArea(); //도넛 면적
}
}
오류나지 않도록 만들기
package com.day04;
public class Circle {
String name;
int r;
public Circle(String name, int r) { // 생성자(인수)
this.name = name;
this.r = r;
}
public Circle() { // 원래는 생략 가능 but 인수가 들어간 생성자가 있기 때문에 적어주어야 함
}
public void getArea() { //함수 생성
System.out.println(name + "의 면적 : " + r * r * 3.14);
}
public static void main(String[] args) {
Circle c1 = new Circle("피자", 10); //피자, 반지름
c1.getArea();
Circle c2 = new Circle(); //도넛, 반지름 -> 디폴트 생성자
c2.name = "도넛";
c2.r = 2;
c2.getArea(); //도넛 면적
}
}
위처럼 해도 되지만 3.14 같은 경우 고정된 값, 수정안되도록 final로 정의
package com.day04;
public class Circle {
String name;
int r;
final double PI = 3.14; //고정된 값, 수정안되도록 final로 정의
public Circle(String name, int r) { // 생성자(인수)
this.name = name;
this.r = r;
}
public Circle() { // 원래는 생략 가능 but 인수가 들어간 생성자가 있기 때문에 적어주어야 함
}
public void getArea() { //함수 생성
System.out.println(name + "의 면적 : " + r * r * PI);
}
public static void main(String[] args) {
Circle c1 = new Circle("피자", 10); //피자, 반지름
c1.getArea();
Circle c2 = new Circle(); //도넛, 반지름 -> 디폴트 생성자
c2.name = "도넛";
c2.r = 2;
c2.getArea(); //도넛 면적
}
}
ArrayClass
package com.day04;
public class ArrayClass {
//합계 구하는 메소드 => sum
//최대값 구하는 메소드 => max
//최소값 구하는 메소드 => min
public static void main(String[] args) {
int[] arr = {10, 5, 3, 36, 45, 9};
}
}
package com.day04;
public class ArrayClass {
//합계 구하는 메소드 => sum
public void sum() {
}
//최대값 구하는 메소드 => max
public void max() {
}
//최소값 구하는 메소드 => min
public void min() {
}
public static void main(String[] args) {
int[] arr = {10, 5, 3, 36, 45, 9}; //sum에서 arr을 알아야 하는데 main 속에서만 arr을 아는 상태
ArrayClass ac = new ArrayClass();
ac.sum();
ac.max();
ac.min();
}
}
package com.day04;
public class ArrayClass {
//합계 구하는 메소드 => sum
public void sum() {
}
//최대값 구하는 메소드 => max
public void max() {
}
//최소값 구하는 메소드 => min
public void min() {
}
public static void main(String[] args) {
int[] arr = {10, 5, 3, 36, 45, 9}; //sum에서 arr을 알아야 하는데 main 속에서만 arr을 아는 상태
ArrayClass ac = new ArrayClass();
ac.sum(arr); //arr을 알려준다
ac.max(arr);
ac.min(arr);
}
}
package com.day04;
public class ArrayClass {
// 합계 구하는 메소드 => sum
public void sum(int[] arr) { // arr의 배열을 받아 옴
int hap = 0;
for (int i = 0; i < arr.length; i++) {
hap += arr[i];
}
System.out.println("합계 : " + hap);
}
// 최대값 구하는 메소드 => max
public int max(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
// 최소값 구하는 메소드 => min
public int min(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
}
}
return min; //함수의 맨 마지막에 return을 적어주어야 함
}
public static void main(String[] args) {
int[] arr = { 10, 5, 3, 36, 45, 9 }; // sum에서 arr을 알아야 하는데 main 속에서만 arr을 아는 상태
ArrayClass ac = new ArrayClass();
ac.sum(arr); // arr을 알려준다 -> 그럼 값을 받아와야 함
System.out.println("최대값 : " + ac.max(arr));
System.out.println("최소값 : " + ac.min(arr));
}
}
다 지우고 다른 방법으로 처음부터
ArrayClass2 ac = new ArrayClass2(arr); 로 생성하면?!
package com.day04;
public class ArrayClass2 {
int[] arr;
public ArrayClass2(int[] arr) {
this.arr = arr;
}
// 합계 구하는 메소드 => sum
public void sum() { // arr의 배열을 받아 옴
int sum = 0;
for(int i=0; i<arr.length;i++) {
sum += arr[i];
}
System.out.println("합계 : " + sum);
}
// 최대값 구하는 메소드 => max
public int max() {
int max = arr[0];
for(int i=1; i<arr.length; i++) {
if(max < arr[i]) {
max = arr[i];
}
}
return max;
}
// 최소값 구하는 메소드 => min
public int min() {
int min = arr[0];
for(int i=1; i<arr.length; i++) {
if(min > arr[i]) {
min = arr[i];
}
}
return min; //함수의 맨 마지막에 return을 적어주어야 함
}
public static void main(String[] args) {
int[] arr = { 10, 5, 3, 36, 45, 9 }; // sum에서 arr을 알아야 하는데 main 속에서만 arr을 아는 상태
ArrayClass2 ac = new ArrayClass2(arr);
ac.sum(); // arr을 알려준다 -> 그럼 값을 받아와야 함
System.out.println("최대값 : " + ac.max());
System.out.println("최소값 : " + ac.min());
}
}
Drink.java
package com.day04;
public class Drink {
public static void main(String[] args) {
// TODO Auto-generated method stub
Drink d1 = new Drink("커피", 500, 3);
d1.getDate(); //커피 500 3 합계 : 1500
Drink d2 = new Drink("녹차", 3000, 5);
d2.getDate(); //녹차 3000 5 합계 : 15000
}
}
작성해보기
package com.day04;
public class Drink {
String name;
int price, cnt;
public Drink(String name, int price, int cnt) {
this.name = name;
this.price = price;
this.cnt = cnt;
}
public void getData() {
System.out.print(name + "\t");
System.out.print(price + "\t");
System.out.print(cnt + "\t");
System.out.print(price*cnt + "\n");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Drink d1 = new Drink("커피", 500, 3);
d1.getDate(); //커피 500 3 합계 : 1500
Drink d2 = new Drink("녹차", 3000, 5);
d2.getDate(); //녹차 3000 5 합계 : 15000
}
}
package com.day04;
public class Drink {
String name;
int price, cnt;
public Drink(String name, int price, int cnt) {
this.name = name;
this.price = price;
this.cnt = cnt;
}
public int getTotal() {
return price*cnt;
}
public void getData() {
System.out.print(name + "\t");
System.out.print(price + "\t");
System.out.print(cnt + "\t");
//System.out.print(price*cnt + "\t");
System.out.print(getTotal() + "\n");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Drink d1 = new Drink("커피", 500, 3);
d1.getData(); //커피 500 3 합계 : 1500
Drink d2 = new Drink("녹차", 3000, 5);
d2.getData(); //녹차 3000 5 합계 : 15000
}
}
커피 500 3 1500
녹차 3000 5 15000
총 판매액도 구해보기
package com.day04;
public class Drink {
String name;
int price, cnt;
public Drink(String name, int price, int cnt) {
this.name = name;
this.price = price;
this.cnt = cnt;
}
public int getTotal() {
return price*cnt;
}
public void getData() {
System.out.print(name + "\t");
System.out.print(price + "\t");
System.out.print(cnt + "\t");
//System.out.print(price*cnt + "\t");
System.out.print(getTotal() + "\n");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Drink d1 = new Drink("커피", 500, 3);
d1.getData(); //커피 500 3 합계 : 1500
Drink d2 = new Drink("녹차", 3000, 5);
d2.getData(); //녹차 3000 5 합계 : 15000
System.out.println("총 판매액 : " + (d1.getTotal()+d2.getTotal()));
}
}
커피 500 3 1500
녹차 3000 5 15000
총 판매액 : 16500
Good.java
package com.day04;
public class Good {
String No, name, cor;
double discountRate;
int price;
public Good(String No, String name, String cor, int price) {
this.No = No;
this.name = name;
this.cor = cor;
this.price = price;
}
public int getSellingPrice() {
return price-(int)(price*discountRate);
}
public void updatediscountRate(double rate) {
discountRate = rate;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Good g1 = new Good("0001", "레몬", "레몬사", 10000);
System.out.println(g1.name + " : " + g1.getSellingPrice()); //레몬 : 10000
Good g2 = new Good("0002", "사과", "애플사", 1500);
System.out.println(g2.name + " : " + g2.getSellingPrice()); //사과 : 1500
g2.updatediscountRate(0.2);//20% 할인
System.out.println(g2.name + " : " + g2.getSellingPrice()); //사과 : 판매금액(할인후)
System.out.println(g2.name + "할인율 : " + g2.discountRate);
}
}
레몬 : 10000
사과 : 1500
사과 : 1200
사과할인율 : 0.2
GoodMain.java 만들어서 이 부분만 떼서 가지고오기
public static void main(String[] args) {
// TODO Auto-generated method stub
Good g1 = new Good("0001", "레몬", "레몬사", 10000);
System.out.println(g1.name + " : " + g1.getSellingPrice()); //레몬 : 10000
Good g2 = new Good("0002", "사과", "애플사", 1500);
System.out.println(g2.name + " : " + g2.getSellingPrice()); //사과 : 1500
g2.updatediscountRate(0.2);//20% 할인
System.out.println(g2.name + " : " + g2.getSellingPrice()); //사과 : 판매금액(할인후)
System.out.println(g2.name + "할인율 : " + g2.discountRate);
}
레몬 : 10000
사과 : 1500
사과 : 1200
사과할인율 : 0.2
요것만 실행해도 답은 그대로 나온다.
접근제한자
public -> 누구나 접근 해라.
캡슐화 -> 하나의 클래스로 만들어 묶어서 : 정보은닉(다른 데서 보지 못하도록)
- 생략 -> default : 같은 패키지에서만 접근 가능 -> 우리가 이때까지 한 것 -> 캡슐화, 정보은닉에 맞지 않게 만들었다.
- private : 자기 자신만 접근
package com.day04;
public class Good {
String No, name, cor; //앞에 생략 -> default : 같은 패키지에서만 접근 가능
double discountRate; //앞에 생략 -> default : 같은 패키지에서만 접근 가능
int price; //앞에 생략 -> default : 같은 패키지에서만 접근 가능
public Good(String No, String name, String cor, int price) {
this.No = No;
this.name = name;
this.cor = cor;
this.price = price;
}
public int getSellingPrice() {
return price-(int)(price*discountRate);
}
public void updatediscountRate(double rate) {
discountRate = rate;
}
}
private로 바꿔주기
package com.day04;
public class Good {
private String No, name, cor;
private double discountRate;
private int price;
public Good(String No, String name, String cor, int price) {
this.No = No;
this.name = name;
this.cor = cor;
this.price = price;
}
public int getSellingPrice() {
return price-(int)(price*discountRate);
}
public void updatediscountRate(double rate) {
discountRate = rate;
}
}
GoodMain.java 실행불가, 오류남 -> 다른 패키지이기 때문에
-> 접근하기 위해서는 접근 가능한 메서드를 만들어 주어야 한다.
Good.java에서 price변수 앞에 get을 붙인다.
public String getName() {
return name;
}
이런식으로 적어줌
Good.java
package com.day04;
public class Good {
private String No, name, cor;
private double discountRate;
private int price;
public Good(String No, String name, String cor, int price) {
this.No = No;
this.name = name;
this.cor = cor;
this.price = price;
}
public int getSellingPrice() {
return price-(int)(price*discountRate);
}
public void updatediscountRate(double rate) {
discountRate = rate;
}
//getter
public String getName() {
return name;
}
public double getDiscountRate() {
return discountRate;
}
}
GoodMain.java
package com.day04;
public class GoodMain {
public static void main(String[] args) {
Good g1 = new Good("0001", "레몬", "레몬사", 10000);
System.out.println(g1.getName() + " : " + g1.getSellingPrice()); //레몬 : 10000
Good g2 = new Good("0002", "사과", "애플사", 1500);
System.out.println(g2.getName() + " : " + g2.getSellingPrice()); //사과 : 1500
g2.updatediscountRate(0.2);//20% 할인
System.out.println(g2.getName() + " : " + g2.getSellingPrice()); //사과 : 판매금액(할인후)
System.out.println(g2.getName() + "할인율 : " + g2.getDiscountRate());
}
}
레몬 : 10000
사과 : 1500
사과 : 1200
사과할인율 : 0.2
결과 동일!
BBS.java
package com.day04;
public class BBS {
//name, date, title, content
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
만들어 보기
package com.day04;
public class BBS {
//name, date, title, content
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(name +" : "+ date +" : "+ title +" : "+ content);
}
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
홍길동 : 2021 : 제목1 : 내용1
이순신 : 2020 : 제목2 : 내용2
강감찬 : 2021 : 제목3 : 내용3
글 앞에 1, 2, 3 이런식으로 번호를 달고싶다.
1 홍길동 : 2021 : 제목1 : 내용1
2 이순신 : 2020 : 제목2 : 내용2
3 강감찬 : 2021 : 제목3 : 내용3
p.149
우리는 위에서 객체
b1, b2, b3 라는 객체 3개를 만들었다 -> 이 객체들은 주소값만 가진다.
예를들어
b1이 100번지 -> 100번지에 title, content, name, date, print()
b2은 200번지 -> 200번지에 title, content, name, date, print()
스텍 영역 힙 영역
하나의 객체는 memory의 각각 필드값과 메서드가 존재한다.
System.out.println(b1);
이렇게 번호가 찍힌다.
package com.day04;
public class BBS {
//name, date, title, content
private int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
0 : 홍길동 : 2021 : 제목1 : 내용1
0 : 이순신 : 2020 : 제목2 : 내용2
0 : 강감찬 : 2021 : 제목3 : 내용3
아직 no에 아무것도 안부여되어있어서 0 나옴
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
1 : 홍길동 : 2021 : 제목1 : 내용1
2 : 이순신 : 2020 : 제목2 : 내용2
3 : 강감찬 : 2021 : 제목3 : 내용3
static -> 객체 마다 가지는 값이 아니고 공유하는 값, 클래스가 static 영역에 접근한다.
보통 클래스 이름으로 접근 BBS.no++;
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
BBS.no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
1 : 홍길동 : 2021 : 제목1 : 내용1
2 : 이순신 : 2020 : 제목2 : 내용2
3 : 강감찬 : 2021 : 제목3 : 내용3
public static void main(String[] args) {
}
public 누구나 접근 가능
static
void 리턴 값이 없음
BBS.java에서 Main 부분을 떼내어서 BBSMain.java에 넣어주기
package com.day04;
public class BBSMain {
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
}
}
에러 -> private 때문,
getter를 만들어 함수를 들고올 수 있게 해서 오류 고치기
BBS.java에서
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
BBS.no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public String getName() {
return name;
}
public String getDate() {
return date;
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
}
getter 만들고
BBSMain.java에서 get으로 접근
package com.day04;
public class BBSMain {
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
System.out.println(b1.getName());
System.out.println(b1.getDate());
System.out.println(b1.getTitle());
System.out.println(b1.getContent());
}
}
결과
1 : 홍길동 : 2021 : 제목1 : 내용1
2 : 이순신 : 2020 : 제목2 : 내용2
3 : 강감찬 : 2021 : 제목3 : 내용3
홍길동
2021
제목1
내용1
여기서 b1.date="2019";로 바꾸고 싶다.
에러가 난다.
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
BBS.no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
//getter
public String getName() {
return name;
}
public String getDate() {
return date;
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
//setter
public void setDate(String date) {
this.date = date;
}
}
package com.day04;
public class BBSMain {
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
System.out.println(b1.getName());
System.out.println(b1.getDate());
System.out.println(b1.getTitle());
System.out.println(b1.getContent());
//b1.date="2019";
b1.setDate("2019");
b1.print();
}
}
title을 바꿔보자
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
BBS.no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public String getName() {
return name;
}
public String getDate() {
return date;
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
//setter
public void setDate(String date) {
this.date = date;
}
public void setTitle(String title) {
this.title = title;
}
}
package com.day04;
public class BBSMain {
public static void main(String[] args) {
BBS b1 = new BBS("홍길동","2021","제목1","내용1");
b1.print(); //글쓴이, 날짜, 제목, 내용
BBS b2 = new BBS("이순신","2020","제목2","내용2");
b2.print(); //글쓴이, 날짜, 제목, 내용
BBS b3 = new BBS("강감찬","2021","제목3","내용3");
b3.print(); //글쓴이, 날짜, 제목, 내용
System.out.println(b1.getName());
System.out.println(b1.getDate());
System.out.println(b1.getTitle());
System.out.println(b1.getContent());
//b1.date="2019";
b1.setDate("2019");
b1.print();
b1.setTitle("제목6");
b1.print();
}
}
1 : 홍길동 : 2021 : 제목1 : 내용1
2 : 이순신 : 2020 : 제목2 : 내용2
3 : 강감찬 : 2021 : 제목3 : 내용3
홍길동
2021
제목1
내용1
3 : 홍길동 : 2019 : 제목1 : 내용1
3 : 홍길동 : 2019 : 제목6 : 내용1
private static int no;
no++; 은 동시에 가지는 값이다 -> 앞에 클래스명 안적어줘도 되지만 보통 BBS.no++; 이렇게 적어 준다.
따라서 객체 마다 가지는 값이 아니므로 초기값 0에서 ++씩 되어서 1 2 3 4 가 되는 것
그러나 static을 지워버리면 객체마다 초기값 0을 가지게 되므로 ++하면 각각 1 1 1 1 을 가지게 됨
BBS.java에서 getter, setter 다 지우고 우측 클릭
package com.day04;
public class BBS {
//name, date, title, content
private static int no;
private String name, date, title, content; //멤버변수 앞에 private -> 지금은 나만 써서 별로 상관 없기는 함
public BBS(String name, String date, String title, String content) {
BBS.no++;
this.no=no;
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
public void print() {
System.out.println(no + " : " + name +" : "+ date +" : "+ title +" : "+ content);
}
public static int getNo() {
return no;
}
public static void setNo(int no) {
BBS.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
자동으로 쫘라락 만들어 줌
public BBS(String name, String date, String title, String content) {
super();
this.name = name;
this.date = date;
this.title = title;
this.content = content;
}
요것도 자동으로 만들어줌
책 p.175~
객체 간 협력 -> 사람 1명이 학교에 가기 위해 수행하는 여러 과정을 객체 지향 프로그램으로 만들기
- 사람이 버스나 지하철을 타고 가는 걸 프로그래밍 해보기
-> 사람, 버스, 지하철 이렇게 세 객체 생성
Student.java p.175
package com.day04.school;
//175
public class Student {
private String studentName;
private int grade;
private int money;
//생성자
public Student(String studentName, int money) { //2. TakeTrans.java에서 "홍길동", 5000원 받아옴
this.studentName = studentName;
this.money = money;
}
//지하철을 타다 요금 1500원
public void takeSubway(Subway subway) {
subway.take(1500);
this.money -= 1500;
}
//버스 타다 요금 1000원
public void takeBus(Bus bus) { //6. s1이 탄 버스 bus100을 받아옴
bus.take(1000); //7. bus100 take 1000원 입력 -> Bus.java
this.money -= 1000;
}
//정보 출력
public void showInfo() {
System.out.println(studentName + "님의 남은 돈은 " + money + "입니다.");
}
}
Bus.java p.177
package com.day04.school;
public class Bus {
private int busNumber;
private int passengerCount;
private int money;
public Bus(int busNumber) { // 4. TakeTrans.java에서 bus100이라는 객체의 번호 100 받아옴
this.busNumber = busNumber;
}
public void take(int money) { //사람을 태운다 8. Student.java bus100.take에서 1000을 받아옴
this.money += money; // +1000
this.passengerCount++; // 승객 +1
}
public void showInfo() {
System.out.println("버스 번호 : " + busNumber);
System.out.println("승객 수 : " + passengerCount);
System.out.println("수입 : " + money);
}
}
Subway.java p.177
package com.day04.school;
public class Subway {
private String lineNumber;
private int passengerCount;
private int money;
public Subway(String lineNumber) {
this.lineNumber = lineNumber;
}
public void take(int money) {
this.money += money;
this.passengerCount++;
}
public void showInfo() {
System.out.println("지하철 : " + lineNumber);
System.out.println("승객 수 : " + passengerCount);
System.out.println("수입 : " + money);
}
}
TakeTrans.java p.178 -> 실행 위한 main
package com.day04;
//178
public class TakeTrans {
public static void main(String[] args) {
}
}
필요
TakeTrans.java
홍길동이 버스를 타고, 이순신이 지하철을 탄다.
package com.day04.school;
//178
public class TakeTrans { //실행을 위한 main
public static void main(String[] args) {
Student s1 = new Student("홍길동", 5000);
Student s2 = new Student("이순신", 10000);
Bus bus100 = new Bus(100);
//홍길동이 버스를 타다
s1.takeBus();
Subway subwayGreen = new Subway("2호선");
//이순신이 지하철을 타다
s2.takeSubway();
}
}
//홍길동이 버스를 타다
s1.takeBus();
-> 몇 번 버스를 탈 것인가? 100번
s1.takeBus(bus100);
그러나 Person.java에서는
public void takebus() {
this.money -= 1000;
}
객체가 없다. -> 인자 값으로 객체가 들어간다.
public void takebus(Bus bus) {
this.money -= 1000;
}
//이순신이 지하철을 타다
s2.takeSubway();
====================================================================
Student.java
package com.day04.school;
//175
public class Student {
private String studentName;
private int grade;
private int money;
//생성자
public Student(String studentName, int money) { //2. TakeTrans.java에서 "홍길동", 5000원 받아옴
this.studentName = studentName;
this.money = money;
}
//지하철을 타다 요금 1500원
public void takeSubway(Subway subway) {
subway.take(1500);
this.money -= 1500;
}
//버스 타다 요금 1000원
public void takeBus(Bus bus) { //6. s1이 탄 버스 bus100을 받아옴
bus.take(1000); //7. bus100 take 1000원 입력 -> Bus.java
this.money -= 1000;
}
//정보 출력
public void showInfo() {
System.out.println(studentName + "님의 남은 돈은 " + money + "입니다.");
}
}
Subway.java
package com.day04.school;
public class Subway {
private String lineNumber;
private int passengerCount;
private int money;
public Subway(String lineNumber) {
this.lineNumber = lineNumber;
}
public void take(int money) {
this.money += money;
this.passengerCount++;
}
public void showInfo() {
System.out.println("지하철 : " + lineNumber);
System.out.println("승객 수 : " + passengerCount);
System.out.println("수입 : " + money);
}
}
Bus.java
package com.day04.school;
//177
public class Bus {
private int busNumber;
private int passengerCount;
private int money;
public Bus(int busNumber) { // 4. TakeTrans.java에서 bus100이라는 객체의 번호 100 받아옴
this.busNumber = busNumber;
}
public void take(int money) { //사람을 태운다 8. Student.java bus100.take에서 1000을 받아옴
this.money += money; // +1000
this.passengerCount++; // 승객 +1
}
public void showInfo() {
System.out.println("버스 번호 : " + busNumber);
System.out.println("승객 수 : " + passengerCount);
System.out.println("수입 : " + money);
}
}
TakeTrans.java
package com.day04.school;
//178
public class TakeTrans { //실행을 위한 main
public static void main(String[] args) {
Student s1 = new Student("홍길동", 5000); //1. 학생 s1 이름은 홍길동, 소지한 돈 5000원 -> Student.java
Student s2 = new Student("이순신", 10000);
Bus bus100 = new Bus(100); //3. bus100이라는 객체 생성 버스번호 100 -> Bus.java
//홍길동이 버스를 타다
s1.takeBus(bus100); //5. s1이 bus100을 탐 -> Student.java
s1.showInfo(); //9. s1의 정보 요청 -> Student.java에서 s1의 정보 줌
bus100.showInfo(); //10. bus100 정보 요청 -> Bus.java에서 bus100의 정보 줌
Subway subwayGreen = new Subway("2호선");
//이순신이 지하철을 타다
s2.takeSubway(subwayGreen);
s2.showInfo();
subwayGreen.showInfo();
}
}
홍길동님의 남은 돈은 4000입니다.
버스 : 100
승객 수 : 1
수입 : 1000
이순신님의 남은 돈은 8500입니다.
지하철 : 2호선
승객 수 : 1
수입 : 1500
package com.day04;
//178
public class TakeTrans {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 5000); // p1 생성 -> 생성자 처리 -> 이름, 학년, 돈, 지하철타다, 버스타다, 정보 보여주다
Student s2 = new Student("이순신", 10000); // p2 생성 -> 이름, 학년, 돈, 지하철타다, 버스타다, 정보 보여주다
Bus bus100 = new Bus(100); // bus100 생성
//홍길동이 버스를 타다
s1.takeBus(bus100); //bus 100번을 탄다
s1.showInfo();
bus100.showInfo();
Subway subwayGreen = new Subway("2호선"); // subwayGreen 생성
//이순신이 지하철을 타다
s2.takeSubway(subwayGreen);
s2.showInfo();
subwayGreen.showInfo();
}
}
Student s1 = new Student("홍길동", 5000);
이 문장에 의해
s1의 Student
private String studentName;
private int grade; //학년
private int money; //돈
//생성자
public Student(String studentName, int money) {
this.studentName=studentName;
this.money = money;
}
//지하철 타다
public void takeSubway(Subway subway) {
subway.take(1500);
this.money -= 1500;
}
//버스 타다
public void takeBus(Bus bus) {
bus.take(1000);
this.money -=1000;
}
//정보출력
public void showInfo() {
System.out.println(studentName+"님의 남은 돈은 " + money + "입니다.");
}
이것이 전부 만들어짐
Student p2 = new Student("이순신", 10000);
이 문장에 의해
private String studentName;
private int grade; //학년
private int money; //돈
//생성자
public Student(String studentName, int money) {
this.studentName=studentName;
this.money = money;
}
//지하철 타다
public void takeSubway(Subway subway) {
subway.take(1500);
this.money -= 1500;
}
//버스 타다
public void takeBus(Bus bus) {
bus.take(1000);
this.money -=1000;
}
//정보출력
public void showInfo() {
System.out.println(studentName+"님의 남은 돈은 " + money + "입니다.");
}
이렇게 만들어짐
Bus bus100 = new Bus(100);
이 문장에 의해
private int busNumber;
private int passengerCount;
private int money;
public Bus(int busNumber) {
this.busNumber = busNumber;
}
public void take(int money) { //사람 태움
this.money += money;
this.passengerCount++;
}
public void showInfo() {
System.out.println("버스 : " + busNumber);
System.out.println("승객 수 : " + passengerCount);
System.out.println("수입 : " + money);
}
이게 생성됨 -> Bus(100) 이므로 busNumber = 100
s1.takeBus(bus100);
public void take(int money) { //사람 태움
this.money += money;
this.passengerCount++;
}
p2도 마찬가지
주말동안
~p.200 까지 공부하기
예습 할 사람은 예습.. 놉.
'프로그래밍 > 자바(java) 융합개발자 2차' 카테고리의 다른 글
[자바 6일차] 25일차 - 다차원 배열, 상속(Do it 공부단 p.219~) (0) | 2021.01.20 |
---|---|
[자바 5일차] 24일 - ArrayList (0) | 2021.01.18 |
[자바 3일차 2] 22일차 2 - 클래스, 객체 (0) | 2021.01.14 |
[자바 3일차] 22일차 - 배열, 난수 (0) | 2021.01.14 |
[자바 2일차] 21일차 - 반복문(for, while, do ~ while) (0) | 2021.01.13 |