카테고리 없음

빅데이터 개발자 과정 - 22일차 수업 필기

Luis. 2022. 3. 19.

많이 알면 알수록 세미나도 가고 할수록, 기회는 더 많아짐. 개인의 성향에 맞는 IT분야가 각각 있음. 보수적인 분야 (금융), 역동적인 분야 각각 모두 존재. 마케팅, 영업 등등 원하는 성향에 따라 선택지가 다양함. 전공자 비전공자 상관없이 10년 가면 월 1,000은 나온다..? 지금부터 대기업 전무가 되겠습니다 하는건 불가능 (2억). 5년 정도 빡세게 배운 뒤 비전공자도 회사 설립이 가능. IT는 재밌는 것이 코딩이 전부가 아니다. 코딩을 잘하는 사람은 그 분야로 나가면 되는 것이고. 그 외에도 자신의 전공과 가진 전문성과 연계해서 발전시킬 수 있는 부분들이 각각 있음.

1차 프로젝트 진행중

- 부품!!

각 class의 역할을 명확히 나눌 필요가 있음.

UI -------------- DAO, DTO ---------------- DBMS

- 메소드!!

기능을 처리 (입력값) ---> 반환값

자바 - 상속 (재사용) : inheritance

집을 상속하는 개념 (지붕이 초록색~)

인터넷 페이지 처리(Page) : class사용하고자 한다.

상속을 개념 Mypage extends Page

UML

class를 하나로 통일해서 그림을 그린 방법 사용

Unified Model Language (UML)

Class Diagram

자바의 over ! // KT기술면접에 나왔다고 함.

--------------------------

override: 오버라이드, 재정의

상속 받았을 때 기능을 재정의하는 경우 사용

overload : 오버로드, 다형성

하나의 이름으로 여러개의 기능을 부여하는 경우 사용

- 메소드의 이름을 동일하게 쓸 수 있다.

- 하나의 이름으로 다양한 형태를 구현할 수 있는 기능

1. 오버로딩이란?

ㄴ 하나의 이름으로 여러개의 기능을 부여하는 것

2. 오버라이딩이란?

ㄴ 상속 받았을 때, 기능을 재정의 하는 것

3. 오버로딩와 오버라이딩의 차이는?

ㄴ 오버라이딩은 재정의 하여 이전의 기능 위에 덮어쓰기 됨. 오버로딩은 조건에 따라 여러기능을 모두 사용 가능.

4. 단일상속이란?

ㄴ 자식은 하나의 부모만 가질 수 있다는 것을 의미

5. 상속이란?

ㄴ 클래스 사이의 관계를 부모-자식관계로 묶어서, 자식클래스가 부모클래스의 변수, 메소드를 사용가능하게 함.

6. 다차원상속이란?

ㄴ 상속의 상속을 거듭할 수 있다. 상속->상속->상속

7. 수퍼클래스란?

ㄴ위에 위치하는 클래스. 넓은 개념

8. 서브클래스란?

ㄴ아래에 위치하는 클래스, 좁은 개념

9. 부모, 자식 클래스를 나타내는 키워드는 각각?

ㄴ 부모 super, 자식 this

10. 부모, 자식 중 누가 더 일반적인 특징을 가지고 있는가?

ㄴ 부모

package 상속재사용;

public class Person { //사람

//성질, 동작 (변수와 메소드)

String name;

int age;

 

public void talk() {

System.out.println("말을 하다.");

}

public void think() {

System.out.println("생각하다.");

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

 

 

 

}

package 상속재사용;

public class Man extends Person {

//성질(2), 동작(2)

int power;

 

public void wild() {

System.out.println("거칠다.");

}

@Override

public String toString() {

return "Man [power=" + power + ", name=" + name + ", age=" + age + "]";

}

 

 

 

 

}

package 상속재사용;

public class SuperMan extends Man { //public final class라고 쓰면 종단 클래스가 됨. (더 이상 상속이 불가능)

//성질(3), 동작(3)

 

String cloth;

 

public void fly() {

System.out.println("하늘을 날다.");

}

@Override

public String toString() {

return "SuperMan [cloth=" + cloth + ", power=" + power + ", name=" + name + ", age=" + age + "]";

}

 

 

}

package 상속재사용;

public class SuperManUser {

public static void main(String[] args) {

SuperMan s = new SuperMan();

s.cloth = "빨강"; //superman

s.power = 100; //man

s.name = "클라크"; //person

s.age = 300; //person

 

System.out.println(s); //참조형은 원래 주소가 찍혀야하지만 toString을 부품에 설정해놔서 자동으로 toString 메소드가 호출됨.

s.fly(); //superman

s.wild(); //man

s.talk(); //person

s.think(); //person

 

}

}

package 상속재사용;

public class Woman extends Person {

int eq;

 

public void soft() {

System.out.println("부드럽다.");

}

}

package 상속재사용;

public class WonderWoman extends Woman {

String weapon;

 

public void rope() {

System.out.println("밧줄을 사용하다.");

}

@Override

public String toString() {

return "WonderWoman [weapon=" + weapon + ", eq=" + eq + ", name=" + name + ", age=" + age + "]";

}

 

 

 

 

}

package 상속재사용;

public class WonderWomanUser {

public static void main(String[] args) {

WonderWoman w = new WonderWoman();

 

w.age = 20;

w.eq = 20;

w.name = "원더";

w.weapon = "rope";

System.out.println(w);

 

w.rope();

}

}

package 상속재사용;

public class Bank {

public double getInterestRate() {

return 0;

}

double interest;

}

package 상속재사용;

public class GoodBank extends Bank {

 

@Override //표시(Annotation), 생략가능

public double getInterestRate() {

return 3 ;

}

 

double interest;

 

@Override

public String toString() {

return "GoodBank [interest=" + interest + "]";

}

}

package 상속재사용;

public class BadBank extends Bank {

//ljy910604@naver.com //at ~에

 

@Override //표시(Annotation), 생략가능

public double getInterestRate() {

return 10 ;

}

 

double interest;

@Override

public String toString() {

return "BadBank [interest=" + interest + "]";

}

 

}

package 상속재사용;

public class NormalBank extends Bank {

 

@Override //표시(Annotation), 생략가능

public double getInterestRate() {

return 5 ;

}

 

double interest;

 

@Override

public String toString() {

return "NormalBank [interest=" + interest + "]";

}

}

package 상속재사용;

public class BankUser {

public static void main(String[] args) {

BadBank b = new BadBank();

NormalBank n = new NormalBank();

GoodBank g = new GoodBank();

 

System.out.println("BadBank rates: " + b.getInterestRate());

System.out.println("NomalBank rates: " + n.getInterestRate());

System.out.println("GoodBank rates: " + g.getInterestRate());

 

b.interest = 10.0;

n.interest = 5.0;

g.interest = 3.0;

 

System.out.println(b);

System.out.println(n);

System.out.println(g);

}

}

package 상속재사용;

public class Student {

public void study() {

System.out.println("ㅇㅇ");

}

 

 

}

package 상속재사용;

public class Element extends Student {

public void study() {

System.out.println("줄넘기 공부하다.");

}

}

package 상속재사용;

public class Middle extends Student {

public void study() {

System.out.println("단소 공부하다.");

}

}

package 상속재사용;

public class High extends Student {

//부모로부터 상속받은 것들 중에 좀 더 specific한 것으로 만들고 싶은 것이 있으면, 덮어써라!

//Override(오버라이드, 재정의)

 

public void study() {

System.out.println("미적분 공부하다.");

}

}

package 상속재사용;

public class StudentUser {

public static void main(String[] args) {

Element e = new Element();

Middle m = new Middle();

High h = new High();

University u = new University();

 

e.study();

m.study();

h.study();

u.study();

 

}

}

반응형

댓글

💲 추천 글