클래스란? -> 공통된 특성을 가진 객체를 추상화 하고 집단화 하여 나타낸것
객체? -> 보고 느끼고 인지할수 있는 모든것, 모든 사건들은 객체들간의 상호작용을 통해 발생한다.
객체지향 프로그래밍(OOP)
장점 1. 손쉽게 재활용이 가능하다. 왜??? -> 안전하고 독립적 이니까
2. 적은노력으로 쉽게 코드를 변경 가능하다.
3. 시간과 비용이 적고, 데이터 손실 없이 관리하기에 아주 좋다.
클래스의 요소
1. 필드 -> 속성을 나타내는 변수
2. 메서드 -> 기능을 나타내는 함수
3. 생성자 -> 객체를 생성하는 역할
4. 이너클래스 -> 클래스 안에 클래스
public class ExampleClass{
int x =10; //필드
void print x (){...} //메서드
ExampleClass(){...} //생성자
Class ExampleClass2 {...} //이너 클래스
}
객체 생성 방법
new(힙 메모리에 저장을해라) 를 이용해 인스턴스를 생성해 준다. 그후 .(포인트 연산자)를 이용해 해당 객체의 멤버에 접근 가능
class Example {
public static void main(String[] args) {
클래스명 참조변수명<-(힙 메모리의 주소값) = new 클래스명();
}
}
" 모든 객체는 동일한 메서드 값을 공유한다 그래서 여러번 같은 메서드를 선언하지 않는다 "
필드 (클래스에 포함된 변수 -> 강제 초기화가 된다)
1. 클래스 변수 -> 공통된 저장공간, 인스턴스 따로 생성이 필요 없음. -> static
2. 인스턴스 변수 -> new 생성자()를 통해 인스턴스가 생성될때 만들어진다.
3. 지역 변수 -> 메서드 안에서 생성, 사용, 스텍 메모리에 저장된다.
메서드
외부에 있는 메서드를 호출하려면 인스턴스 생성해야하며 포인트 연산자 사용해서 메서드를 호출
내부에선 객체를 생성할 필요가 없다.
class ExampleClass{
자바제어자 반환타입 메서드명(매개변수) {// 메서드 시그니처
메서드 내용
}
}
매개변수는 비어 있을수도 있고 있을 수도 있다. 단, 호출시 인자의 개수와 순서는 반드시 일치해야한다.
void 가 아닌이상 return을 해줘야한다.
오버로딩
하나의 클래스 안에 같은 이름의 메서드를 여러개 정의 한 것.
조건
1. 같은 이름의 메서드명. 2. 매개변수의 개수나 타입이 다르게 정의
더 공부해야하는 내용들
객체와 인스턴스와는 거의 같다고 보지만 조금은 다르다는 부분이 이해가 확실히 안된다.
메서드, 필드 직접 구현해 보기.
오늘의 느낀점

'자바(JAVA)' 카테고리의 다른 글
객체지향 프로그래밍(생성자, 내부 클래스) (0) | 2022.11.07 |
---|---|
객체지향 프로그래밍(클래스, 객체, 필드, 메서드) (0) | 2022.11.07 |
배열공부하기 (0) | 2022.11.03 |
제어문, 반복문 공부하기 (0) | 2022.11.03 |
변수, 타입, 문자열 , 연산자 공부하기 (0) | 2022.10.31 |