더보기
실습 3
실습 1
- 아래의 클래스를 클래스 간의 관계를 고려하여 모두 설계하시오. 상속관계고려 설계
- Member 클래스 - 웹페이지 정보만 아는 사람, 구매하게되면 user가됨
- 필드
- 회원 일련번호 serialNo
- 회원 아이디 memberID
- 회원 비밀번호 memberPassword
- 회원 핸드폰번호 memberPhoneNumber
- 회원 이메일 memberEmail
- 회원 생년월일 memberBirthDate
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- User 클래스 - 제품구매자
- 필드
- 회원 정보 member
- 사용 중인 전자 제품 electronicDevice
- 사용 중인 요금제 paymentPolicy
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- Electronic 클래스
- 필드
- 제품 일련번호 productNo
- 전자기기 모델명 modelName
- 제조 회사명 companyName
- Sumsung, LG, Apple → Enum형으로 정의
- 생산일자 dateOfMade
- 본인인증 방법 authMethod
- 지문인증, 패턴인증, 핀 인증, 얼굴인증 → Enum형으로 정의
- 하나의 전자 기기에는 다수의 인증 방법이 있을 수도 있음
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- MobileElectronic 클래스
- 필드
- 통신 방법 communicationMethod
- 5G, 4G, 3G → Enum형으로 정의
- 무게 weight
- 통신 방법 communicationMethod
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- NoneMobileElectronic 클래스
- 필드
- 설치 주소 address
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- SmartPhone 클래스
- 필드
- 카메라 개수 numOfCameras
- 센서 개수 numOfSensors
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- Tablet 클래스
- 필드
- 펜슬 유무 hasPencil
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- SmartTV 클래스 -nonmobile
- 필드
- 인치 inch
- 메소드
- 생성자, getter(), setter(), hashCode(), equals(), toString()
- 필드
- Member 클래스 - 웹페이지 정보만 아는 사람, 구매하게되면 user가됨
실습 2
- Electronic를 최대 10개 저장하고 있는 객체 배열 Electronic[]이 있다.
- Electronics[] 을 가지고 있는 Electronics를 만들자.
- 전자제품 일련번호 productNo가 주어졌을 때 해당 일련번호에 해당하는 전자제품을 반환하는 함수를 작성하시오.
- Electronic findByProductNo(String ProductNo)
실습 3
- Electronics 에서 저장된 Electronics[] 들을 companyName으로 분류하는 함수를 작성하시오.
- companyName은Sumsung, LG, Apple만 Enum형으로 들어올 수 있다고 가정
- Electronics groupByCompanyName()
public class Electronics{
Electronic[] electronics = new Electronic[10];
}
-------------------
product1 Electronic
product2 Electronic
product3 Electronic
-------------------
product4 Electronic
product5 Electronic
product6 Electronic
-------------------
.......
실습 4
- 실습 3번 코드에 다음과 같은 시나리오를 통해 필요한 메서드를 추가하시오.
- Kalen 고객의 요청에 따라 핸드폰 번호를 바꾸려고 한다.
- Kalen 고객의 핸드폰 바꾸기 규칙은 다음과 같다. 먼저 나온 규칙이 우선순위가 높다.
- 현재 사용 중인 핸드폰 번호에서 연속된 2개 숫자만 다름 if문
- 현재 사용 중인 핸드폰 번호 중 중간 4개 숫자가 동일함 if문
- 현재 사용 중인 핸드폰 번호 중 마지막 4개 숫자가 동일함 if문
- 현재 사용 중인 핸드폰 번호에서 3개 숫자만 다름 (연속될 필요 없음) if문
- 핸드폰 번호 후보 입력값은 위의 조건에 의해 결과가 무조건 하나로 나온다고 가정
- 사용가능한 핸드폰 번호 후보가 인자로 들어갔을 때 Kalen 고객이 최종적으로 사용하게 될 핸드폰 번호는 무엇인지 반환하는 함수String getNewPhoneNumber(String[] candidates)를 작성하시오.
실습 5
- 수업시간에 사용하는 패키지 me.day09.abstracts.method 이용하여 아래의 문제를 구현하시오.
- Main 클래스의 calculateArea()를 추상 클래스 개념을 이용해서 객체지향적인 코드로 수정하시오.
// 객체지향적이지 않은 코드 🤔
public static double calculateArea(Shape shape) {
final double PI = 3.14;
if (shape instanceof Circle) {
return ((Circle) shape).getRadius() * ((Circle) shape).getRadius() * PI;
} else if (shape instanceof Rectangle) {
return ((Rectangle) shape).getWidth() * ((Rectangle) shape).getHeight();
} else if (shape instanceof Triangle) {
return ((Triangle) shape).getBase() * ((Triangle) shape).getHeight() * 0.5;
} else {
return 0.0;
}
}
- Trapezoid 클래스도 calculateArea()를 계산할 수 있어야 합니다.
- 두 점 사이의 거리
- 사다리꼴 넓이 공식
위의 공식을 이용하여 다음과 같은 함수를 만들어보시오.
- Line findMaxLineByY() - 사다리꼴 넓이 공식에서 사다리꼴을 이루는 선분 중 a 구하는 함수
- Line findMinLineByY() - 사다리꼴 넓이 공식에서 사다리꼴을 이루는 선분 중 b 구하는 함수
- int getHeight(Line x, Line y) - 사다리꼴 넓이 공식에서 사다리꼴을 이루는 선분 중 h 구하는 함수
실습 6
- 아래 문제의 참 / 거짓을 판별하시오. 디폴트 생성자는 모든 클래스와 인터페이스에 존재한다고 가정
- 클래스 파일말고 일반 텍스트 파일에 저장 practice06 > New > File
- 하나의 인스턴스 InterfaceA가 있다고 가정하자.
- InterfaceA ia = new InterfaceA() (O, X)
- 하나의 추상 클래스 AbstractClass가 있다고 가정하자.
- AbstractClass a = new AbstractClass() (O, X)
- 부모클래스 A를 상속하고 있는 자식 클래스 B가 있다고 가정하자. (B is A)
- A a = new B() (O, X)
- 인터페이스 InterfaceA를 구현하고 있는 구현 클래스 ImplementClassB가 있다고 가정하자.
- InterfaceA ia = new ImplementClassB() (O, X)
- 클래스 B의 필드로 클래스 A를 포함하고 있다고 가정하자. (B has a A)
- A a = new B() (O, X)
실습 7
- 실습 5번의 코드에 다음과 같이 추가하고자 한다.
- GeometricController - 도형 이동함수 관련 인터페이스
- translate(int dx, int dy) - 원점을 dx, dy만큼 이동 윗변의길이가 2배
- scale(int offset) - 원점을 중심으로 offset배 만큼 도형을 확대 / 축소시킬 수도 있음
- GeometricController의 함수를 호출할 수 있는 클래스에 implement하고 필요한 메소드를 재정의하는 코드를 작성하시오.
- get 메서드(getter) : 단순히 멤버변수의 값을 반환 'get멤버변수이름'
- set 메서드(setter) : 매개변수에 지정된 값을 검사하여 조건에 맞는 값일 때만 멤버변수의 값을 변경 'set멤버변수이름'
- protected class : 상속을 통해 확장될 것이 예상되는 경우, 멤버에 접근 제한을 주되 자손클래스에서 접근가능
- private class : 자손클래스에서 접근 불가
- enum : 열거형, 여러 상수 선언시 사용, 자동으로 0부터 시작하는 정수값 할당 enum 열거형이름 {상수형1, 상수형2, ... }
'[패스트캠퍼스]KDT 핀테크 서비스 백엔드 > review' 카테고리의 다른 글
11주차 Review - Spring/SpringBoot - 2022. 11. 24. 14:15 작성 (0) | 2022.12.19 |
---|---|
8~10주차 Review - Spring - 2022. 11. 18. 16:31 작성 (0) | 2022.12.19 |
4주차 실습과제(배열) review - 2022. 10. 6. 13:56 작성글 (0) | 2022.12.08 |
3주차 실습과제 review - 2022. 9. 29. 20:31 작성글 (0) | 2022.12.08 |
2주차 Review - java(1) - 2022. 9. 23. 14:36 작성글 (1) | 2022.12.08 |