01. Java (v)
02. git
03. Database
04. Jsp [Server]
05. 미니프로젝트 (3W)
06. HTML,CSS
07. JS
08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
컴퓨터 프로그램을 객체들의 모임으로 파악하고자 하는 프로그래밍의 패러다임 중 하나
각 객체들은 서로 메시지를 주고 받을 수 있으며 데이터를 처리할 수 있음
강한 응집력과 약한 결합력을 지향
모듈에 포함된 내부 요소
들이 서로 연관되어 있는 정도모듈간
의 상호 의존 정도장점
OOP의 기본 구성 요소
같은 종류의 집단에 속하는 속성과 행위
를 정의한 것으로 다른 클래스와 독립적으로 디자인해야 함클래스의 인스턴스
로 상위클래스의 속성을 가지고 있으면서 개별적인 특성과 행위 또한 가지고 있음클래스로부터 생성된 객체를 사용하는 방법
으로 객체의 속성을 조작하는데 사용OOP의 5원칙(SOLID)
SRP,단일 책임 원칙
: Single Responsibilty Principle)
OCP,개방-폐쇄 원칙
: Open/Closed Principle)
LSP,리스코프 치환 원칙
: Liskov's Substitution Principle)
ISP,인터페이스 분리 원칙
: Interface Segregation Principle)
DIP,의존성 역전 원칙
: Dependency Inversion Principle)
OOP의 특성
캡슐화(Encapsulation)
상속(Inheritance)
추상화(Abstraction)
다형성(Polymorphism)
메서드 헤드라인 위에 반드시 Annotation, @Override 표시
OOP(Object Oriented Programming)에서 상속은 기존의 클래스를 확장해 새로운 클래스를 이끌어내는 것
기존의 코드를 재사용함으로써 불필요한 코드의 재작성을 방지하고 시간과 노력을 줄일 수 있음.
단일상속만을 지원
상속을 사용하는 키워드는 extends
자식클래스
: 다른 클래스로부터 상속을 받아 새롭게 만들어진 클래스
부모클래스
: 자식클래스에게 멤버변수와 메서드를 물려준 상위 클래스
상속을 하면 부모클래스의 멤버변수와 메서드가 자식클래스에 상속되나 부모클래스의 생성자는 상속이 되지 않음
Object클래스는 자바의 최상위 클래스
public class Person{
String name;
int age;
String info(){
return "이름: "+ name + ", 나이: " + age;
}
}
// #상속1
public class Employee extends Person{
String department;
}
// #상속2
public class Student extends Person{
String studentId;
}
// #상속3
public class Teacher extends Person{
String subject;
}
부모클래스로부터 상속받은 메서드
를 자식클래스에서 행위를 바꾸거나 보완하기 위해 다시 정의해서 사용
하는 것
부모클래스에서 특별한 용도로 사용하던 메서드를 자식클래스에서 다른 용도로 사용할 때 필요
public class Person {
// 공통클래스(부모 클래스)
String name;
int age;
String info() {
return "이름:" +name+", 나이:"+age;
}
}
public class Student extends Person{
String studentId;
@Override // 어노테이션 - 특정기능 표현
String info() {
return "이름:"+name+", 나이:"+age+", 학번:"+studentId;
}
}
public class Teacher extends Person{
String subject;
@Override
String info() {
return "이름:"+name+", 나이:"+age+", 과목:"+subject;
}
}
public class Employee extends Person{
String department;
@Override
String info() {
return "이름:"+name+", 나이:"+age+", 부서:"+department;
}
}
자바는 메서드나 생성자의 중복 선언 허용
중복은 메서드 또는 생성자를 선언할 때 이름은 같지만 매개 변수의 유형이나 개수를 다르게 선언해 놓는 것
중복을 사용하면 하나의 메서드로 매개 변수의 유형에 따라 다른 동작이 실행