혼자공] 05. 자바객체
2) ⭐⭐⭐⭐⭐객체지향 기본원리 (면접 필수 질문!!)
원리 | 내용 |
추상화 | 현실세계를 그대로 표현하기보다 중요한 측면에 주목, 상세내역을 없애 나가는 과정 interFace |
상속성 Inheritance | Super Class가 갖는 성질을 Sub Class에 자동으로 부여 PGM을 쉽게 확장할 수 있게 만드는 수단 Extends / Implements (면접에서 설명할때는 두 가지 요소를 각각 비교해서 설명하기) |
다형성 Polymotphysm | 동일 Interface 서로 다르게 응답할 수 있는 특성 연관 Class위한 일관된 매개체를 개발하는 수단 OverLoading: 동일한 이름의 Operation(Method) 사용 가능 OverRiding: Super class의 Method를 sub Class에서 재정의 (면접에서는 OL을 중심으로 설명하고 OR을 곁들여서 설명하기) |
Capsule화 | 객체의 상세 내역을 객체외부에 철저히 숨기고, 단순히 Message만으로 객체와 상호작용 객체 내부 구조와 실체 분리로 내부 반경이 PGM에 미치는 영향 최소화 유지보수 용이 Encapsulation |
오늘의 코딩
- ch05_ex02>>Week(num파일)
- ch05_ex02>>EnumWeekEx
- Car1Ex
- Car
- Car1Ex
- Car3
- Car3Ex
- CardTest01
- ConstrEx01
- NumEx
- SubscribeEx
- ScoreEx2
- ch06_ex09>>PakTest01
- PersonEx
- AccountEx
1. ch05_ex02>> Week(num파일), EnumWeekEx
package ch05_ex02;
public enum Week {
//연속된 상수들중 하나를 선택할 수 있을때 enum을 사용
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
- enum?: 서로 관련이 있는 상수들의 집합을 의미
package ch05_ex02;
import java.util.Calendar;
public class EnumWeekEx {
public static void main(String[] args) {
Week today = null;
Calendar cal = Calendar.getInstance();
int weekNum = cal.get(Calendar.DAY_OF_WEEK);
//컴퓨터의 달력을 참고해 오늘의 날짜를 가져온다
switch(weekNum) {
case 1:
today = Week.SUNDAY; break;
case 2:
today = Week.MONDAY; break;
case 3:
today = Week.TUESDAY; break;
case 4:
today = Week.WEDNESDAY; break;
case 5:
today = Week.THURSDAY; break;
case 6:
today = Week.FRIDAY; break;
case 7:
today = Week.SATURDAY; break;
}
System.out.println("오늘 요일: " + today);
if(today == Week.SUNDAY) {
System.out.println("일요일에는 축구를 합니다.");
} else {
System.out.println("열심히 자바 공부합니다.");
}
}
}
- 이 코드로 무엇을 배웠는가?: 컴퓨터의 달력 자료를 끌어오는 방법
↳ 느낀점: 시간이나 다른 자료도 끌어와서 활용할 수 있지 않을까?
8. CardTest01
package ch06_ex01;
class Card {
// 인스턴스 변수
String kind;
int number;
//클래스 변수
static int width = 100;
static int height = 250;
public Card() {
}
public Card(String kind, int number) {
//kind 와 number에 다른 타입의 변수이름을 붙여야한다
this.kind = kind; //kind = kind 는 중복되는 이름이라 안됨, this 꼭 붙이기
this.number = number;
}
}
public class CardTest01 {
public static void main(String[] args) {
//객체1 생성 ---> 기본 생성자
Card c1 = new Card(); //객체1 생성
c1.kind = "Heart"; //인스턴스 변수
c1.number = 7;
System.out.println(" c1 : " + c1.kind + "," + c1.number);
System.out.println("\n c1 : " + Card.width + "," + c1.height);
//객체2 생성 ---> 생성자 (Memory + 인스턴스 변수 초기화)
Card c2 = new Card("Spade", 4); //객체2 생성
System.out.println("\n c2 : " + c2.kind + "," + c2.number);
System.out.println("\n c2 : " + Card.width + "," + c2.height);
}
}
숙제: person---> subscribeEX 참고
package hw04_0528;
class Person {
public String name;
private int age;
private String gender;
Person (String n, int a, String g) {
name = n;
age = a;
gender = g;
}
Person (String n) {
name = n;
}
void chgAge(int a) {
age = a;
}
void chgGnd(String g) {
gender = g;
}
void print() {
System.out.println("이름:" +name+" 나이 :"+age+" 성별 :" +gender);
}
}
public class PersonEx_hw {
public static void main(String[] args) {
// Instance per11 , per12, per13
Person s1 = new Person("홍 길동", 52, "M");
Person s2 = new Person("연개소문", 62, "M");
Person s3 = new Person("선덕여왕", 72, "F");
s1.print();
s2.print();
s3.print();
}
}
'Java' 카테고리의 다른 글
2024_06_04_화 (0) | 2024.06.04 |
---|---|
2024_06_03_월 (0) | 2024.06.03 |
2024_05_31_금 (0) | 2024.05.31 |
2024_05_30_목 (0) | 2024.05.30 |
2024_05_29_수 (0) | 2024.05.29 |