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 |