728x90
반응형
💾 소스코드
🚩Car, CarSmart클래스를 만들어 차의 문의 개수, 차의 색상, 기어타입, 자동 운전 여부를 작성한다.
//클래스명 : Car
//멤버변수 : 데이터타입-변수명-용도
// int-door-문의개수, String-color-차의색상, String-gearType-기어타입
//생성자
// 매개변수를 3개 갖는 생성자 - 문의개수,색상, 기어타입을 전달받아 멤버변수 초기화
// 기본생성자 - 문의갯수는 3, 색상은 white, 기어타입은 auto로 멤버변수 초기화
//메서드
//toStirng()을 오버라이드 - 모든 멤버 변수를 문자열로 반환
//테스트 코드 : 문의 갯수와 색상, 기어타입이 다음과 같은
// 2개의 Car 인스턴스를 생성하고 정보를 출력
// 1번 인스턴스 - 3, white, auto
// 2번 인스턴스 - 4, red, auto
-------------------------------------------------------------------------------------------------------------------
//클래스명 : CarSmart
//조상클래스 : Car
//멤버변수 : 데이터타입-변수명-용도
//boolean - autoMode - 자동 운전 여부
//생성자
//매개변수를 4개 갖는 생성자 - 문의개수, 색상, 기어타입, 자동운전 모드를 전달받아 멤버변수 초기화
//기본 생성자 - 문의 갯수는 3, 색상은 white, 기어타입은 auto, 자동운전모드는 false로 초기화
//매서드 //toAutoMode - 반환타입 boolean -> 자동운전모드 여부를 반환 - 전달인자 없음
//toString()을 오버라이드 - 모든 멤버 변수를 문자열을 반환
package day_06_27;
public class Test1 {
public static void main(String[] args) {
// Car c1 = new Car(); // 1번 인스턴스 - 3, white, auto
// Car c2 = new Car(4, "red", "auto"); // 2번 인스턴스 - 4, red, auto
CarSmart c1 = new CarSmart();
CarSmart c2 = new CarSmart(4, "red", "auto", true);
System.out.println(c1);
System.out.println(c2);
}
}
class Car {
int door; // 문의 개수
String color; // 차의 색상
String gearType; // 기어 타입
// 기본 생성자
Car() {
this(3, "white", "auto");
}
// 매개변수를 3개 갖는 생성자
Car(int door, String color, String gearType) {
this.door = door;
this.color = color;
this.gearType = gearType;
}
@Override
public String toString() {
return "문의 개수 : " + this.door + ", 차의 색상 : " + this.color + ", 기어 타입 : " + this.gearType;
}
}
class CarSmart extends Car {
boolean autoMode; // 자동 운전 여부
CarSmart() {
super(); // Car 클래스의 기본 생성자 호출- Car() {this(3, "white", "auto");}
this.autoMode = false;
}
CarSmart(int door, String color, String gearType, boolean autoMode) {
super(door, color, gearType); // Car 클래스의 생성자 호출 - Car(int door, String color, String gearType)
this.autoMode = autoMode;
}
boolean toAutoMode() {
return this.autoMode;
}
@Override
public String toString() {
return super.toString() + ", 자동 운전 여부 : " + this.toAutoMode();
}
}
🚩Card 클래스를 만들어 랜덤으로 5장의 카드의 무늬와 숫자를 출력한다.
//클래스명 : Card
//멤버변수 : 데이터타입-변수명-용도
// String-shape-카드의무늬
// int-num-카드의 숫자
// int-height-카드의 세로길이
// int-width-카드의 가로길이
//생성자
//매개변수가 4개인 생성자 : 카드의 무늬와 숫자, 가로 세로 길이를 전달받아
// 멤버변수를 초기화
//매개변수가 2개인 생성자 : 카드의 무늬와 숫자를 전달받아 멤버변수를 초기화하고
// 가로와 세로 길이를 각각 100과 200으로 초기화
//메서드
//toString을 오버라이딩하여 무늬와 숫자, 가로 세로 길이를 출력
//테스트 코드 : 길이가 5인 Card 타입의 배열에 난수로 초기화한 카드의 인스턴스를 저장하고 정보를 출력
// 무늬는 diamond, heart, spade, clover 중 하나
// 숫자는 1부터 13 사이의 값 중 하나
package day_06_27;
public class Test2 {
public static void main(String[] args) {
Card[] arr = new Card[5]; // 0, 1, 2, 3, 4
int number = 0; // 1~13 사이의 값
int index = 0;
String[] shape = {"diamond", "heart", "spade", "clover"}; // diamond, heart, spade, clover 중 무늬
for(int i=0; i<arr.length; i++) {
number = (int)(Math.random()*13) + 1; // 1~13 사이의 랜덤 숫자 값
index = (int)(Math.random()*4); // 0~4
arr[i] = new Card(shape[index], number); // 랜덤 값이 들어있는 5개의 객체 생성
System.out.println((i+1) + "번 | " + arr[i]);
}
}
}
class Card {
String shape; // 카드 무늬
int num; // 카드 숫자
int height; // 카드 세로 길이
int width; // 카드 가로 길이
// 매개변수가 4개인 생성자
Card(String shape, int num, int height, int width) {
this.shape = shape;
this.num = num;
this.height = height;
this.width = width;
}
//매개변수가 2개인 생성자
Card(String shape, int num) {
this.shape = shape;
this.num = num;
this.height = 200;
this.width = 100;
}
@Override
public String toString() {
return "카드 무늬 : " + this.shape +
", 카드 숫자 : " + this.num +
", 가로 길이 : " + this.width +
", 세로 길이 : " + this.height;
}
}
🚩Student, StudentEx 클래스를 만들고 이름, 반, 번호, 국영수, 자바 점수를 출력하시오.
//클래스명 : Student
//멤버변수 : 데이터타입-변수명-용도
// String-name-이름
// int-ban-반
// int-no-번호
// int-kor-국어점수
// int-eng-영어점수
// int-math-수학점수
//생성자
//매개변수가 3개인 생성자 - 이름, 반, 번호를 전달받아 초기화, 모든 점수는 -1로 초기화
//매개변수가 6개인 생성자 - 이름, 반, 번호, 국영수 점수를 전달받아 멤버변수를 초기화
//메서드 : 메서드명-반환타입-기능-전달인자
//setKor-void-국어점수설정-국어점수
//setEng-void-영어점수설정-영어점수
//setMath-void-수학점수설정-수학점수
//getKor, getEng, getMath - 각각 국영수 점수를 반환, 반환타입 int, 전달인자 없음
//getTotal-int-국영수 총점을 반환, 점수가 입력되기 전이면 오류 메세지
//toString 오버라이딩 - 모든 멤버변수들을 출력
//getAverage-float-국영수 평균을 반환
-------------------------------------------------------------------------------------------------------------------
//클래스명 : StudentEx
//조상클래스명 : Student
//멤버변수 : 데이터타입-변수명-용도
// int -java - 자바 파일명
//생성자
//매개변수가 3개인 생성자 - 이름, 반, 번호를 전달받아 초기화, 모든 점수는 -1로 초기화
//매개변수가 7개인 생성자 - 이름, 반, 번호, 국영수, 자바 점수를 전달받아 멤버변수를 초기화
//메서드 : 메서드명-반환타입-기능-전달인자
//setJava - void-자바점수설정-자바점수
//getJava - int - 자바점수를 반환, 전달인자 없음
//getTotal-int-국영수와 자바 총점을 반환, 점수가 입력되기 전이면 오류 메세지
//toString 오버라이딩 - 모든 멤버변수들을 출력
//getAverage-float-국영수자바의 평균을 반환
package day_06_27;
public class Test3 {
public static void main(String[] args) {
StudentEx s1 = new StudentEx("스폰지밥", 1, 3);
StudentEx s2 = new StudentEx("뚱이", 1, 4);
StudentEx s3 = new StudentEx("징징이", 1, 5, 60, 100, 50, 60);
s1.setKor(70);
s1.setEng(90);
s1.setMath(70);
s1.setJava(80);
s2.setKor(20);
s2.setEng(50);
s2.setMath(10);
s2.setJava(100);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
class StudentEx extends Student {
int java;
// 매개변수가 7개인 생성자 - 이름, 반, 번호, 국영수, 자바 점수
StudentEx(String name, int ban, int no, int kor, int eng, int math, int java) {
super(name, ban, no, kor, eng, math); // Student(String name, int ban, int no, int kor, int eng, int math) 생성자 호출
this.java = java;
}
// 매개변수가 3개인 생성자 - 이름, 반, 번호
StudentEx(String name, int ban, int no) {
super(name, ban, no); // Student(String name, int ban, int no) 생성자 호출
}
void setJava(int java) {this.java = java;}
int getJava() {return this.java;}
int getTotal(int kor, int eng, int math, int java) {
int sum = 0;
if(this.kor < 0 || this.eng < 0 || this.math < 0 || this.java < 0) {
System.out.println("오류");
}
else {
sum = super.getTotal() + java;
}
return sum;
}
float getAverage() {
float avg = 0.0f;
avg = this.getTotal() / 4;
return avg;
}
@Override
public String toString() {
return "학생 이름 : " + super.name +
", 반 : " + super.ban +
", 번호 : " + super.no +
", 국어 점수 : " + super.kor +
", 영어 점수 : " + super.eng +
", 수학 점수 : " + super.math +
", 자바 점수 : " + this.java +
", 총점 : " + this.getTotal() +
", 평균 : " + this.getAverage();
}
}
class Student {
String name; // 학생 이름
int ban; // 반
int no; // 번호
int kor; // 국어 점수
int eng; // 영어 점수
int math; // 수학 점수
// 매개변수가 6개인 생성자 - 이름, 반, 번호, 국영수 점수
Student(String name, int ban, int no, int kor, int eng, int math) {
this.name = name;
this.ban = ban;
this.no = no;
this.kor = kor;
this.eng = eng;
this.math = math;
}
// 매개변수가 3개인 생성자 - 이름, 반, 번호
Student(String name, int ban, int no) {
this(name, ban, no, -1, -1, -1); // Student(String name, int ban, int no, int kor, int eng, int math) 생성자 호출
}
// 점수 설정
void setKor(int kor) {this.kor = kor;}
void setEng(int eng) {this.eng = eng;}
void setMath(int math) {this.math = math;}
// 점수 반환
int getKor() {return this.kor;}
int getEng() {return this.eng;}
int getMath() {return this.math;}
// 총점 반환. 점수가 입력되기 전이면 오류 메시지
int getTotal() {
int sum = 0;
if(this.kor < 0 || this.eng < 0 || this.math < 0) {
System.out.println("오류");
}
else {
sum = this.kor + this.eng + this.math;
}
return sum;
}
// 평균 반환
float getAverage() {
float avg = 0.0f;
avg = this.getTotal() / 3;
return avg;
}
@Override
public String toString() {
return "학생 이름 : " + this.name +
", 반 : " + this.ban +
", 번호 : " + this.no +
", 국어 점수 : " + this.kor +
", 영어 점수 : " + this.eng +
", 수학 점수 : " + this.math +
", 총점 : " + this.getTotal() +
", 평균 : " + this.getAverage();
}
}
🚩Point, Point3D 클래스를 만들고 x,y,z좌표를 출력하시오.
//클래스명 : Point
//멤버변수 : 데이터타입-변수명-용도
// int - x - x좌표
// int - y - y좌표
//생성자
// 매개변수가 2개인 생성자 - x, y 좌표를 전달받아 멤버변수에 저장
//메서드 : 메서드명-반환타입-기능-전달인자
// getLocation - String - xy 좌표값을 문자열로 반환 - 없음
//테스트 코드 : x,y좌표가 10, 20인 Point 인스턴스를 생성하고 화면에 좌표값을 출력
-------------------------------------------------------------------------------------------------------------------
//클래스명 : Point3D
//조상클래스 : Point
//멤버변수 : 데이터타입-변수명-용도
//int - z - z좌표
//생성자
// 매개변수가 3개인 생성자 - x, y, z좌표를 전달받아 멤버변수에 저장
//메서드 : 메서드명-반환타입-기능-전달인자
//getLocation - String - xyz 좌표값을 문자열로 반환
package day_06_27;
public class Test4 {
public static void main(String[] args) {
Point3D p = new Point3D(10, 20, 30);
System.out.println(p.getLocation());
}
}
class Point3D extends Point {
int z;
//매개변수가 3개인 생성자 - x, y, z 좌표 저장
Point3D(int x, int y, int z) {
super(x,y);
this.z = z;
}
// xyz 좌표값을 문자열로 반환
String getLocation() {
return super.getLocation() + "z좌표 : " + z;
}
}
class Point {
int x;
int y;
// 매개변수가 2개인 생성자 - x, y 좌표 저장
Point(int x, int y) {
this.x = x;
this.y = y;
}
// xy 좌표값을 문자열로 반환
String getLocation() {
return "x좌표 : " + x + " y좌표 : " + y;
}
}
🚩Tv, TvIp 클래스를 만들고 전원, 채널, 음량, ipTv인지 아닌지 확인하여 출력하는 소스를 작성하시오.
//클래스명 : Tv
//멤버변수 : 데이터타입-변수명-용도
// boolean-power-전원on/off
// int-channel-채널
// int-volumn-음량
//생성자
//기본 생성자 : 채널은 0, 음량은 0
//매개변수가 2개인 생성자 : 채널과 음량을 전달받아 멤버변수를 초기화
//메서드 메서드명-반환타입-기능-전달인자
//setChannel - 없음 - 정수값을 입력받아 채널 멤버변수에 저장 - int
//getChannel - int - 멤버변수에 저장된 채널 값을 반환 - 없음
//setVolumn - 없음 - 정수값을 입력받아 음량 멤버변수에 저장 - int
//getVolumn - int - 멤버변수에 저장된 음량 값을 반환 - 없음
//powerOnOff - 없음 - 호출할 때 마다 전원 멤버변수 값을 반전 - 없음
-------------------------------------------------------------------------------------------------------------------
//클래스명 : TvIp
//조상클래스명 : Tv
//멤버변수 : 데이터타입-변수명-용도
//boolean - ipTv - IP 티비 여부를 확인
//생성자
//기본 생성자 : 채널은 0, 음량은 0, IP 티비는 true
//매개변수가 3개인 생성자 : 채널과 음량, ipTv을 전달받아 멤버변수를 초기화
//메서드 메서드명-반환타입-기능-전달인자
//isIpTV - boolean - 없음
package day_06_27;
public class Test5 {
public static void main(String[] args) {
TvIp t1 = new TvIp(20, 100, false); // 채널 : 20, 음량 : 100
TvIp t2 = new TvIp();
t1.powerOnOff();
t2.powerOnOff();
t2.setChannel(50);
t2.setVolumn(80);
System.out.println("1번째 " + t1);
System.out.println("2번째 " + t2);
}
}
class TvIp extends Tv {
boolean ipTv;
// 기본 생성자
TvIp() {
super(0, 0);
this.ipTv = true;
}
// 매개변수가 3개인 생성자 : 채널, 음량, ipTv
TvIp(int channel, int volumn, boolean ipTv) {
this.channel = channel;
this.volumn = volumn;
this.ipTv = ipTv;
}
boolean isIpTv() {
return this.ipTv;
}
@Override
public String toString() {
return super.toString() + ", ipTv 유무 : " + this.isIpTv();
}
}
class Tv {
boolean power;
int channel;
int volumn;
Tv() {
this(0, 0); // Tv(int channel, int volumn) 생성자 호출
}
Tv(int channel, int volumn) {
this.channel = channel;
this.volumn = volumn;
}
// 전원
void powerOnOff() {
power = !power;
}
// 채널
void setChannel(int channel) {
this.channel = channel;
}
int getChannel() {
return this.channel;
}
// 음량
void setVolumn(int volumn) {
this.volumn = volumn;
}
int getVolumn() {
return this.volumn;
}
@Override
public String toString() {
return "Tv 상태 : " + this.power + ", 채널 : " + this.channel + ", 음량 : " + this.volumn;
}
}
728x90
반응형
'Language > JAVA' 카테고리의 다른 글
JAVA 8일차 - 연습문제 (0) | 2022.06.29 |
---|---|
JAVA 7일차 - 접근 제어자, 다형성 (0) | 2022.06.28 |
JAVA 6일차 - 제어자, 추상클래스, 추상메소드 (0) | 2022.06.27 |
JAVA 6일차 - 패키지, import문 선언 (0) | 2022.06.27 |
JAVA 6일차 - toString 메소드, 상속 예제 연습 (0) | 2022.06.27 |
댓글