본문 바로가기

자바(JAVA)

클래스(Class), 객체(Object) 공부하기

클래스란? -> 공통된 특성을 가진 객체를 추상화 하고 집단화 하여 나타낸것

객체? -> 보고 느끼고 인지할수 있는 모든것, 모든 사건들은 객체들간의 상호작용을 통해 발생한다.

 

객체지향 프로그래밍(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. 매개변수의 개수나 타입이 다르게 정의

 

 

 

 

더 공부해야하는 내용들

객체와 인스턴스와는 거의 같다고 보지만 조금은 다르다는 부분이 이해가 확실히 안된다.

메서드, 필드 직접 구현해 보기.

 

 

오늘의 느낀점