본문 바로가기
학교/컴프1

컴프 실습 코드 정리 (Week12)

by 발빠진 쥐 2024. 6. 11.

OperatorCalcTest

package Week12;

/**
* 컴퓨터프로그래밍1
* 학번:202402697
* 이름:엄태은
*/

import java.util.Scanner;


public class OperatorCalcTest {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();
		String y = sc.next();
		
		int value = 0;

		if (y.equals("+")) {
			Add i = new Add();
			i.setOperand(a, b);
			value = i.calculate();
		}

		else if (y.equals("-")) {
			Sub j = new Sub();
			j.setOperand(a, b);
			value = j.calculate();
		}

		else if (y.equals("*")) {
			Mul l = new Mul();
			l.setOperand(a, b);
			value = l.calculate();
		}

		else {
			Div k = new Div();
			k.setOperand(a, b);
			value = k.calculate();

		}
		
		System.out.println(value);

	}

}

abstract class Calc {
	int a, b;

	

	void setOperand(int a, int b) {
		this.a = a;
		this.b = b;

	}

	abstract int calculate();

}

class Add extends Calc {
	
	

	int calculate() {
		return a + b;
	}

}

class Sub extends Calc {
	
	
	int calculate() {
		return a - b;
	}

}

class Mul extends Calc {
	

	int calculate() {
		return a * b;
	}

}

class Div extends Calc {
	
	int calculate() {
		return a / b;
	}

}

걍 쉬움

void setOperand(int a, int b) {

this.a = a;

this.b = b;

 

}

메소드를 사용해서 피연산자 값을 초기화 하는 것만 알면 될듯


PersonArrayTest

package Week12;

/**
* 컴퓨터프로그래밍1
* 학번:202402697
* 이름:엄태은
*/

import java.util.Scanner;

public class PersonArrayTest {

	public static void main(String[] args) {
		
		Person[] p = new Person[3];
		
		p[0] = new Person("Hong kildong", 25);
		p[1] = new Student("Chang kilsan", 20, "202350806");
		p[2] = new ForeignStudent("Peter", 27, "201702085", "USA");
		
		for(int i =0 ; i<3; i++) {
		System.out.println(p[i].show());
		}
		
	}

}

class Person {
	String name;
	int age;
	
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public String getName(){
		return this.name;
		
	}
	
	public int age(){
		return this.age;
		
	}
	

	public String show() {
		
		System.out.print(getClass().getSimpleName());
		
		return " name: " + name + ", age" + ": " + age;

	}

}

class Student extends Person {
	String studentNumber;

	public Student(String name, int age, String studentNumber) {
		super(name, age);
		this.studentNumber = studentNumber;
	}

	public void getstudentNumber(){
		this.studentNumber=studentNumber;
		
	}
	
	
	
	public String show() {
		
		return super.show()+ ", studentNumber: " + studentNumber;
	}

}

class ForeignStudent extends Student {

	String nationality;

	public ForeignStudent(String name, int age, String studentNumber, String nationality) {
		super(name, age, studentNumber);
		this.nationality = nationality;
	}
	
	public void getnationality(){
		this.nationality=nationality;
		
	}
	

	public String show() {
		
		return super.show()+ ", nationality: " + nationality;
	}
}

p[0] = new Person("Hong kildong", 25);

( ) 안에 값을 넣어서 매개변수가 2개인 생성자 호출

p[1], p[2] 도 같은 원리

 

Person을 상속받는 클래스 Student 가 실행될때

 

super.show + 학번 + 국적 형식으로 출력이 나옴 ( super.show로 Person이 먼저 실행됨.)

이런식으로 쭉쭉쭊 연결돼서 출력이됨

 

근데 System.out.print(getClass().getSimpleName()); 을 사용해서 클래스 이름을 먼저 출력하고 그 이후로 음 암튼 그런걸 출력함

 


ShapeTest

package Week12;

/**
* 컴퓨터프로그래밍1
* 학번:202402697
* 이름:엄태은
*/

public class ShapeTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Shape[] list = new Shape[3];
		list[0] = new Circle();
		list[1] = new Rect();
		list[2] = new Triangle();
		
		for(Shape s : list ) {
			s.redraw();
			s.getArea();
		}
	}

}

interface Shape {
	final double PI = 3.14;

	void draw();

	double getArea();

	default public void redraw() {
		System.out.print("redraw: ");
		draw();
	}

}

class Circle implements Shape {
	
	private double radius;

	 Circle() {
		 this.radius = 10.0;
		
	}
	
	 public void draw() {
		 System.out.println("Drawing a circle with a radius of 10.");
		 System.out.println("The area of the circle is "+getArea());
	 }
	 
	
	 
	public double getArea() {
		return PI*radius*radius;	
		}

}

class Rect implements Shape {
	
	private double width;
	private double height;

	 Rect() {
		 this.width = 10.0;
		 this.height = 40.0;
		
	}
	
	 public void draw() {
		 System.out.println("Drawing a rectangle of size 10 by 40.");
		 System.out.println("The area of the rectangle is "+getArea());
	 }
	 
	
	 
	public double getArea() {
		return width*height;	
		}
	
	

}

class Triangle implements Shape {
	
	private double base;
	private double height;

	Triangle() {
		 this.base = 30.0;
		 this.height = 20.0;
		
	}
	
	 public void draw() {
		 System.out.println("Drawing a triangle of size 30 by 20.");
		 System.out.println("The area of the triangle is "+getArea());
	 }
	 
	
	 
	public double getArea() {
		return 0.5*base*height;	
		}
	

}

for(Shape s : list ) {

s.redraw();

s.getArea();

}

 

list가 끝날 때까지 s.메서드 반복.

 

 

TelephoneArray

package Week12;

/**
* 컴퓨터프로그래밍1
* 학번:202402697
* 이름:엄태은
*/

public class TelephoneArray {
    public static void main(String[] args) {
        Phone[] p = new Phone[3];

        p[0] = new Phone("홍길동");
        p[1] = new Telephone("장길산","내일");
        p[2] = new SmartPhone("Peter","테트리스");

        for (int i = 0; i < p.length; i++) {
            System.out.println(p[i]);
        }


    }
}

class Phone{

    protected String owner;

    public Phone(String owner){
        this.owner=owner;
    };
    public void talk(String owner){
     System.out.println(owner+"은(는) 통화중이다.");
    }
    public String toString() {
        return owner+"은(는) 통화중이다.";
    }
}

class Telephone extends Phone{

    protected String when;
   

    public Telephone(String owner, String when){
        super(owner);
        this.when = when;

    };
    public void autoAnswering() {
    System.out.println(owner+"은(는) 부재중이다 내일 전화 주세요.");
    
    }
    
    public String toString() {
        return owner+"은(는) 부재중이다 내일 전화 주세요.";
    }
}

class SmartPhone extends Telephone{

    private String game;

    public SmartPhone(String owner, String game){
    	
        super(owner,null); 
        this.game=game;
        
    }
    public void playGame(){
    System.out.println(owner+"은(는) "+game+" 게임을 하는 중이다.");
    }
    
    public String toString() {
        return owner+"은(는) "+game+" 게임을 하는 중이다.";
    }
   
}

'학교 > 컴프1' 카테고리의 다른 글

컴프1 실습 코드 정리 (Week13)  (0) 2024.06.11
컴프 1 실습 코드 정리 (Week11)  (0) 2024.05.26
컴프 1 실습 코드 정리 (W9~W10)  (0) 2024.05.26
컴프 1 실습 코드 정리(W7)  (0) 2024.05.26
컴프 1 실습 코드 정리(W6)  (0) 2024.04.14