🎈최근 스프링을 공부하며 자바공부를 복기중인데 자바의 특징들을 다시 공부하며 정리해보려 한다!
📌객체 지향 Object Oriented Programming (OOP)
객체 : 우리 주변의 모든 것. 고유한 특성과 기능을 가지고 있다.
객체 지향 : 실세계의 객체를 프로그램내에 표현하기 위해 클래스와
객체 개념을 도입한것.
💡특징
코드의 재사용성이 높다 : API사용
코드 관리가 쉽다 : 상속, 다형성, 추상화, 캡슐화...
신뢰성이 높은 프로그램 개발 가능
캡슐화 encapsulation : 자바가 지향하는 코드 스타일
상속 inheritance : 부모가 자손에게 가진것들을 물려주는것.
다형성 polymorphism
: 상속관계에서 성립
같은 이름의 메서드가 클래스나 객체에 따라
기능이 다르게 동작하도록 구현되는 것을 말함.
절차지향 : 순서대로 진행되는 코드 방식
객체지향 : 부품처럼 서로 상호작용하며 진행되는 방식
📌 클래스와 객체
1) 클래스 (설계도)
객체를 정의해놓은것
용도는 객체를 만들기 위한것
붕어빵틀
2) 객체
실제로 존재 하는것, 사물, 개체
클래스 모양 그대로 생성된 실체
붕어빵 (틀로만든..)
3) 객체와 인스턴스
객체 == 인스턴스
4) 객체 (속성 + 기능)
속성과 기능을 멤버라 부른다.
속성 : 멤버변수, 필드
기능 : 메서드
5) 인스턴스(객체) 생성과 사용
순서 : 클래스(설계도 만들기) -> 객체 생성 -> 사용
💡클래스 구조
class 클래스명 {
변수(속성, 필드)
메서드
}
* 클래스명은 대문자로 시작, 숫자로시작X, 띄어쓰기X,
특수문자 _ $, 패키지안에 이름은 한개만 존재하게.
6) 인스턴스(객체) 생성
*선언
클래스명 참조변수명;
Scanner sc
*생성
참조변수 = new 클래스명();
sc = new Scanner(System.in);
*# 줄여서
클래스명 참조변수명 = new 클래스명();
Scanner sc = new Scanner(System.in);
* 참조 변수(레퍼런스 변수) : 객체를 가르키는,
객체의주소(레퍼런스)를 담고 있을 변수
-> 객체 생성전, 참조변수 먼저 선언만 하면
메모리에 아직 객체가 생성되어 올라간것이 아니다.
그냥 주소 담을 수 있는 변수만 만들어놓은것.
* new : 새로운 클래스 모양의 메모리를 새로 점유시키는 중요한 키워드
7) 객체 멤버(변수or메서드) 에 접근 : 점(.) 연산자 사용
sc.nextLine();
** 💡 정리하자면
클래스 == 사용자 정의 데이터 타입
기본형 : 메모리 양이 정해진것
참조형(클래스) : 개발자가 필요한 만큼 메모리를 직접 지정해서 만든것.
클래스 : 유사한 특징을 지닌 객체들의 "속성"과 기능을 묶어놓은 집합
객체 : 실제 존재하는 object 를 말함.
📌 코드 예시 (Java)
// #1. 클래스 만들기
class Person {
// 속성 = 변수
String name ;
int age = 0 ;
// 기능 = 메서드
void work() {
System.out.println("나는 항상 열심히 일을 해!");
}
void eat() {
System.out.println("나는 초밥이 먹고 싶어!");
}
}
public class Test51 { //클래스
public static void main(String[] args) {
//메서드 메인메서드 : 프로그램 시작시 가장 먼저 실행되는 메서드
//변수 작성가능
//#2 객체 생성
Person p = new Person();
// #3 사용
p.name = "제이스";
p.age = 100;
System.out.println("내 이름은 "+ p.name+"라고 해!");
p.eat();
p.work();
}
}
✨출력결과
내 이름은 제이스라고 해! //System.out.println("내 이름은 "+ p.name+"라고 해!");
나는 항상 열심히 일을 해! //p.eat();
나는 초밥이 먹고 싶어! //p.work();
### 📈금융 개발 블로그 : https://quantpro.co.kr/