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;
}
}
자바는 메서드나 생성자의 중복 선언 허용
중복은 메서드 또는 생성자를 선언할 때 이름은 같지만 매개 변수의 유형이나 개수를 다르게 선언해 놓는 것
중복을 사용하면 하나의 메서드로 매개 변수의 유형에 따라 다른 동작이 실행