객체는 말로 표현할 수 있는 모든것
객체의 성질은 속성과 행위이다.
속성은 변수이고 행위는 메소드이다.
프로그램에서 필요한 변수나 메소드를 뽑아내는 행위를 추상화과정이라고 한다.
이 모든 과정을 끝내고 나면 클래스가 나온다.
데이터 타입
기본 데이터 타입 | 사용자 데이터 타입 |
기본 데이터 타입
논리형 | 문자형 | 정수형 | 정수형 | 정수형 | 정수형 | 실수형 | 실수형 |
boolean | char | byte | short | int | long | float | double |
1 byte | 2 byte | 1 byte | 2 byte | 4 byte | 8 byte | 4 byte | 8 byte |
💡데이터 타입의 크기가 각자 다른 이유?
옛날 옛적에는 메모리의 용량이 지금처럼 크지 않았기에 효율적으로 프로그램을 작성했어야했다.
그래서 1byte라도 아끼기 위해 데이터 타입(자료형)을 만들었다.
사용자 지정 데이터 타입
기본 데이터 타입을 제외한 모든것 ex) String, Class
객체지향언어(OOP)의 특징
상속, 형성, 캡슐화
상속
위에서 정의한건 밑에서 정의하지 말자 오브젝트라는 클래스로부터 파생이 되면서 나온게 객체지향의 시작이다 그래서 Object Oriented Programming의 약자인 OOP가 객체지향언어를 뜻하는것이다.
부모클래스에서 상속받은 메소드를 자식 클래스에서 재정의 하는것(오버라이딩)의 전제조건은 상속이다.
캡슐화
객체지향이지만 객체안에서 무슨일을 하는지 세세하게 알 필요가 없다.
오브젝트 안에 있는 변수와 메소드 내가 세세히 다 알지 못해도 사용하는데에 지장이 없게 만든다.
다형성
많을 다/ 형태 형(Form) → 다양한 형태를 갖고있다.
‘먹다’ → 음식을’먹다’, 나이를’먹다’ 목적어가 달라지면서 형태가 달라지고 변경되는 값이 다르다. 즉, 몸통이 하난데 형태는 여러가지로 표현될 수 있다, 또한 하나의 클래스 안에는 같은 이름의 메소드가 존재 할 수 있다. 이것이 오버로딩이다.
코딩 컨벤션
코딩을 하면서 지켜야될 약속(규칙)
- 들여쓰기(Tap)
- 네이밍룰
- 클래스의 첫번째 글자는 대문자로 작성
- 메소드나 변수명의 첫번째 글자는 소문자로 작성
- 띄어쓰기가 나와야되는건 쓸때마다 대문자
ex) class → Student Kyungmin, 변수 or 메소드 → student Kyungmin (이런식으로 사용하는걸 카멜변수라고 함) - 상수로 지정하는 min과 max같은건 다 대문자 → MIN, MAX (이런데서 띄어쓰기할때 언더바 사용)
- 클래스 구성을 변수는 변수끼리 메소드는 메소드끼리 구성하는게 가독성이 좋다
접근제어자
private = 오로지 혼자 사용가능 (ex : 속옷)
protected = 상속관계에는 공유 (ex : 후라이팬, TV)
public = 누구에게나 공유 (ex : 초인종)
default = 같은 패키지 내에서 공유 가능
참조
String name 에서 name은 참조변수
int []age = new Array(3); 이런식으로 쓰면 age[]는 int형이지만 배열함수이기 때문에 참조함수
참조형 데이터타입을 복사해도 주소를 가르키고 있기 때문에
Worrior w1 = new Worrior();
Worrior w2 = w1; ← 이런식으로 만들면 w2.hp를 바꾸면 w1.hp도 바뀜
이유 : 메모리에 참조시키는거기 때문에 영향을 준다
'실력 향상 일지 > 23년 1학기 정리' 카테고리의 다른 글
[수리능력(통계)] 분포와 편포 (2) | 2023.04.17 |
---|---|
[수리능력(통계)] 표본의 추출 (0) | 2023.04.13 |
[java] 3월 정리 - 2 (0) | 2023.04.01 |