[TIL] 객체지향 1

성민·2023년 1월 25일
0

자바 공부

목록 보기
5/5

01. 객체지향 part 1

객체

  • 실제로 존재하는 사물 또는 개념
  • 객체의 속성등에 따라 용법이 달라짐

클래스

  • 객체를 정의해 놓은것
  • 정해진 객체를 생성하는데 사용
  • 변수 + 메소드로 구성됨
  • 클래스 == 사용자 지정 타입
class Tv {
    int currentChannel;        // 인스턴스 변수
    static int minChannel;        // 인스턴스 변수
    static int maxChannel;        // 인스턴스 변수

		//생성자
		Tv() {
				minChannel = 1;
				maxChannel = 10;
				currentChannel = minChannel;
		}

    void channelUp() {
				if (this.currentChannel + 1 >= maxChannel)
						return;
				this.currentChannel++;
    }
}
  • 클래스 변수
    • 클래스가 메모리에 올라갈 때 생성됨

    • 객체를 생성하지 않고 언제든 사용가능

    • 접근방법 - 클래스명.클래스변수명

      TV.minChannel;
  • 인스턴스 변수
    • 객체가 생성될 때 인스턴스 변수가 생성

    • 접근 방법 - 생성된 객체 변수명.인스턴스변수명

      TV tv = new TV();
      tv.currentChannel;
  • 메서드
    • { // 메서드가 호출되면 수행할 코드(구현부) }

    • 메서드가 호출되면 호출 스택에 메모리가 할당, 종료되면 해제

      void channelUp() {
      		if (this.currentChannel + 1 >= maxChannel)
      				return;
      		this.currentChannel++;
      }
    • static 메서드

      • 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드) 와 관련없는 작업을 하는 메서드

      • 메서드 내에서 인스턴스 변수 사용 불가

        class Test {
        		int a;
        		int b;
        	
        		static void print() {
        				// 인스턴스 변수 a에 접근 불가
        				// System.out.println(a);
        		}
        }
  • 객체생성(클래스 생성)
    • 변수명 = new 클래스명;

      TV t = new Tv();
  • 생성자
    • 인스턴스 초기화 메서드

    • 초기값이 필요한 인스턴스 변수의 값을 초기화

    • 오버로딩 가능

    • 이름이 클래스 이름과 같음

    • 생성자를 하나도 선언되어 있지 않았을 때는 기본생성자 자동생성

      class Test {
      		int a;
      		Test(){}// 기본생성자
      		Test(int a){
      				this.a = a;
      		}// 생성자
      }
  • this, this()
    • 인스턴스 자신을 가리키는 참조변수

    • 지역 변수와 인스턴스 변수를 구별할 때 사용

      class Test {
      		int a;
      		Test(int a){
      				this.a = a;
      		}
      }
  • **변수의 초기화**
    • 멤버변수(인스턴스 변수, 클래스 변수)는 자동으로 초기화

오버로딩

  • 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것
  • 오버로딩의 성립 조건
    • 메서드 이름이 같음
    • 매개변수의 개수 또는 타입, 위치가 다름
    • 반환타입은 관계없음
  • 사용을 하는 목적
    • 입력하는 값이 다르지만 같은 기능을 수행하는 경우가 많을 때 사용성 및 효율을 높이기 위해

0개의 댓글