본문 바로가기
솔루션모음/파워자바 프로그래밍

[파워자바] 11장 프로그래밍 솔루션 답지

by 이얏호이야호 2023. 2. 15.

 

1.

class Circle {
	double radius;
	String color;

	public Circle(double radius) {
		super();
		this.radius = radius;
	}

	public Circle() {
		super();
		this.radius = 0;
	}

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public double getArea() {
		return 3.141592 * radius * radius;
	}
}

class Cylinder extends Circle {
	public Cylinder(double radius, double height) {
		super(radius);
		this.height = height;
	}

	public Cylinder() {
		super(0);
	}

	public Cylinder(double radius) {
		super(radius);
	}

	public double getVolume() {
		return super.getArea() * height;
	}

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	double height;
}

public class TestCylinder {
	public static void main(String[] args) {
		Cylinder obj1 = new Cylinder();
		System.out.println(obj1.getHeight());
		System.out.println(obj1.getRadius());
		Cylinder obj2 = new Cylinder(5.0, 3.0);
		System.out.println(obj2.getHeight());
		System.out.println(obj2.getRadius());
	}
}

 

2.

class Person {
	public Person(String name, String address) {
		super();
		this.name = name;
		this.address = address;
	}
	public Person(String name, String address, String phone) {
		super();
		this.name = name;
		this.address = address;
		this.phone = phone;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	String name;
	String address;
	String phone;
}

class Customer extends Person {
	public Customer(String name, String address, int customerNumber, int mileage) {
		super(name, address);
		this.customerNumber = customerNumber;
		this.mileage = mileage;
	}
	public Customer(String name, String address, String phone) {
		super(name, address, phone);
	}
	int customerNumber;
	int mileage;
}

public class Test {
	public static void main(String[] args) {
		...
	}
}

 

3.

class Shape {
	protected int x, y;
	protected int w, h;

	public double getArea() {
		return 0;
	}

	public double getPerimeter() {
		return 0;
	}
}

class Triangle extends Shape {
	int a, b, c;

	public Triangle(int a, int b, int c) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
	}

	@Override
	public double getArea() {
		return 2.0 * w * h;
	}

	@Override
	public double getPerimeter() {
		return a + b + c;
	}
}

public class Test {
	public static void main(String[] args) {
		...
	}
}

4.

class Book{
	private String title;
	private int pages;
	private String writer;
	
	public Book(String title,int pages,String writer)
	{
		this.title=title;
		this.pages=pages;
		this.writer=writer;
	}
	public String getTitle(){
		return title;
	}
	public void setTitle(String title){
		this.title=title;
	}
	public int getPages(){
		return pages;
	}
	public void setPages(int pages){
		this.pages=pages;
	}
	public String getWriter(){
		return writer;
	}
	public void setWriter(String writer){
		this.writer=writer;
	}
	public String toString(){
		return "책 이름 : "+title+"\n페이지 수 : "+pages+"\n저자 : "+writer;
	}
}

public class Magazine extends Book{
	
	private String date;
	
	public Magazine(String title,int pages,String writer,String date)
	{
		super(title,pages,writer);
		this.date=date;
	}
	public String toString(){
		return super.toString()+"\n발매일 :"+date;
	}
	public static void main(String[] args) {
		Magazine 잡지A = new Magazine("잡지A",10,"기자A","2010년 2월 25일");
		Magazine 잡지B = new Magazine("잡지B",20,"기자B","2010년 3월 8일");
		
		System.out.println(잡지A.toString());
		System.out.println(잡지B.toString());
	}
}

 

5.

class Food{				
	private int cal;			//필드 데이터 정의
	private int cost;
	private int kg;
	
	public Food(int cal, int cost, int kg){	//생성자 매개변수 존재
		this.cal = cal;
		this.cost = cost;
		this.kg = kg;	}
	public Food(){				//생성자 
		this.cal = 0;
		this.cost = 0;
		this.kg = 0;	}
	
	public void setCal(int cal){			//설정자.
		this.cal = cal;	}
	public void setCost(int cost){
		this.cost = cost;	}
	public void setKg(int kg){
		this.kg = kg;	}
	
	public int getCal(){			//접근자.
		return cal;		}
	public int getCost(){
		return cost;	}
	public int getKg(){
		return kg;	}
}
class Melon extends Food{			//melon 클래스 작성 Food 상속
	private String info;				//필드 정의
						
							//Food 상속 생성자 작성
	public Melon(int cal, int cost, int kg,String info) {
		super(cal, cost, kg);			//Food 생성자 호출
		this.info = info;	}
	public Melon(){
		super();
		info = "NULL";}	

	public void setInfo(String info){			//설정자.
		this.info = info;	}
	public String getInfo(){				//접근자.
		return info;	}
	
	public String toString(){
		return "Melon의 정보\n칼로리 : "+this.getCal()+"\n가격 : "+
		this.getCost()+"\n중량 : "+this.getKg()+"\n정보"+this.getInfo();
	}
}

public class Melon_Test {					//드라이버 클래스 작성
	public static void main(String[] args) {	

Melon m1 = new Melon(124,21,2,"jjh_fram");
		Melon m2 = new Melon(1,1,1,"0");
		
		m2.setCal(100);
		m2.setCost(210);
		m2.setKg(21);
		m2.setInfo("jjh2_Test");
		
		System.out.println(m1+"\n");
		System.out.println(m2);
	}
}

 

6.

class Phone {
	public Phone(String maker, int price, int type) {
		super();
		this.maker = maker;
		this.price = price;
		this.type = type;
	}
	public String getMaker() {
		return maker;
	}
	public void setMaker(String maker) {
		this.maker = maker;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	protected String maker;
	protected int price;
	protected int type;
}

class SmartPhone extends Phone {
	public String getOs() {
		return os;
	}
	public SmartPhone(String maker, int price, int type, String os,
			String version, int memory, boolean hasCamera, boolean hasBluetooth) {
		super(maker, price, type);
		this.os = os;
		this.version = version;
		this.memory = memory;
		this.hasCamera = hasCamera;
		this.hasBluetooth = hasBluetooth;
	}
	public void setOs(String os) {
		this.os = os;
	}
	public String getVersion() {
		return version;
	}
	public void setVersion(String version) {
		this.version = version;
	}
	public int getMemory() {
		return memory;
	}
	public void setMemory(int memory) {
		this.memory = memory;
	}
	public boolean isHasCamera() {
		return hasCamera;
	}
	public void setHasCamera(boolean hasCamera) {
		this.hasCamera = hasCamera;
	}
	public boolean isHasBluetooth() {
		return hasBluetooth;
	}
	public void setHasBluetooth(boolean hasBluetooth) {
		this.hasBluetooth = hasBluetooth;
	}
	private String os;
	private String version;
	private int memory;
	private boolean hasCamera;
	private boolean hasBluetooth;
}

public class Test {
	public static void main(String[] args) {
		...
	}
}

 

7.

class Student{				//Student 클래스 정의
	private String name;		//필드데이터 정의 	
	private int number;		//이름,학번,전공,학년,학점
	private String major;
	private int grade;
	private int next_point;
						//생성자 정의
	public Student(String name,int number,String major,int grade,int next_point){
		this.name = name;	         //매개 변수 와 필드 데이터 이름이 같기에
		this.number = number;		//this.사용 자신의 클래스 변수를 참조
		this.major = major;
		this.grade = grade;
		this.next_point = next_point;	}
	
	public Student(){
		name = null;
		number = 0;
		major = null;
		grade = 0;
		next_point = 0;			}
	
	public String getName(){			//접근자를 설정 한다.
		return name;	}		//외부서 접근자를 통해 해당 데이터 저장
	public int getNumber(){
		return number;	}
	public String getMajor(){
		return major;	}
	public int getGrade(){
		return grade;	}
	public int getNext_point(){
		return next_point;	}
	
	public void setName(String name){		//설정자 정의
		this.name = name;	}	//설정자를 통해 클래스 데이터 변경가능
	public void setNumber(int number){
		this.number = number;	}
	public void setMajor(String major){
		this.major = major;	}
	public void setGrade(int grade){
		this.grade = grade;	}
	public void setNext_point(int next_point){
		this.next_point = next_point;	}
	
	public String toString(){			//toString 재 정의한다. 클래스 정보를 출력
		return "이름 :"+name+" 학번 :"+number+" 학과 :"+major+" 학년 :"+
		grade+" 이수학점 :"+next_point;	}
}
class underGraduate extends Student{	//학부생 클레스 정의 Stduent 로부터 상속받음.
	private String club;			//필드데이터 정의 "동아리 이름"
						//생성자 정의
	public underGraduate(String name, int number, String major, int grade,
			int nextPoint, String club) {
		super(name, number, major, grade, nextPoint);
						//super 통해 부모 클래스 생성자 호출
		this.club = club;	}
	public underGraduate(){
		super();
		club = null;	}
	
	public void setClub(String club){			//생성자 설정
		this.club = club;	}
	public String getClub(){				//접근자 설정
		return club;	}

	//toString 재정의한다. 학부생 클래스 정보 출력
	public String toString(){		
		return "이름 :"+getName()+"/ 학번 :"+getNumber()+"/ 학과 :"+getMajor()+
		"/ 학년 :"+getGrade()+"/ 이수학점 :"+getNext_point() + "/ 소속 동아리 :"+club;
	}
}
class Graduate extends Student{		
	private String assistant ;			//교육조교
	private boolean scholarship; 		//장학금여부	
						//생성자를 정의 한다.
	public Graduate(String name, int number, String major, int grade,	
			int nextPoint,String assistant, int scholarship) {
		super(name, number, major, grade, nextPoint);
						//super 사용 부모 클래스 생성자 호출
		this.assistant = assistant;
		this.scholarship = ((scholarship == 1)? true:false);	//입력값을 확인
	}					//1일경우 true 그외일 경우 false 저장
	public Graduate(){
		super();
		assistant = null;
		scholarship = false;	
	} 	
	
	public void setAssistant(String assistant){			//설정자 정의
		this.assistant = assistant;	}	
	public void setScholarship(boolean scholarship){
		this.scholarship = scholarship;	}
	
	public String getAssistant(){				//접근자 정의
		return assistant;	}
	public boolean getScholarship(){
		return scholarship;		}
					
		//toString 재 정의 대학원생 클래스의 정보를 출력
	public String toString(){	 	
		return "이름 :"+getName()+"/ 학번 :"+getNumber()+"/ 학과 :"+getMajor()+
		"/ 학년 :"+getGrade()+"/ 이수학점 :"+getNext_point() + "/ 조교 유형 :"+assistant+"/ 장학금 여부 :"+((scholarship == true)? "받음":"못받음");
	}
}

public class student_Test {		
	public static void main(String[] args) {		
					
		underGraduate ug1 = new underGraduate("갑",1000,"컴공",3,84,"날자날어");
		
		Graduate g1 = new Graduate("을", 100, "전자공학", 2, 51,"교육 조교",0);
		Graduate g2 = new Graduate("병", 100, "세포생물", 2, 61,"연구 조교",1);
					//대학원생 객체를 두개 생성 g1,g2를 통해 참조가능.
		
		System.out.println(ug1);	//ug1이 가르키는 객체 정보를  출력(toString 호출)
		ug1.setClub("돌고 돌아");	//ug1이 가르키는 객체 클럽설정자 호출, 값 변경 
		ug1.setNext_point(87);	//ug1이 가르키는 객체 학점설정자 호출, 데이터 변경
		System.out.println(ug1);	//ug1이 가르키를 객체 정보를 출력
		
		System.out.println(g1);	//g1이 가르키를 객체 정보를 출력	
		
		g2.setGrade(3);		//g2가 가르키는 객체 학년설정자를 호출, 값 변경
		g2.setNumber(102);        //g2가 가르키는 객체 학번설정자를 호출, 값 변경

		System.out.println(g2);	//g2의 객체 정보를 다시 출력
	}
}

댓글