05. 객체지향 알기

Wendy·2020년 6월 10일
0
post-thumbnail

[리뷰] 처음 해보는 자바 프로그래밍 - 05. 객체지향 알기

내용 정리

5.1 객체지향의 주인공은 '객체'

객체 = 속성 + 동작

5.2 클래스란 무엇일까?

5.2.3 접근 제한자(access modifier)

  • public : 무조건 접근 가능
  • protected : 같은 패키지거나 상속관계에서 접근 가능
  • (default) : 같은 패키지면 접근 가능 (접근 제한자 생략시 자동 지정)
  • private : 같은 클래스면 접근 가능

5.3 자바 소스 파헤치기

[자바 소스 기본 파일구조]

package 패키지명;
import 패키지명.클래스명;

접근제한자 class 클래스명 {
    필드 선언;	// private string name;
    생성자 선언	// public 클래스명() {}
    메서드 선언	// public getName() {}
}

5.3.2 클래스 import

import 문에서 * 사용시 패키지의 모든 파일을 의미하나 하위패키지는 제외

import a.b.c.*;
import a.b.c.d.*; //위에 *이 있으나 하위패키지는 이렇게 따로 선언해야 함

5.3.3 클래스 선언

클래스의 제어자는 접근제한자(default, public)과 abstract 만 사용 가능

5.4 필드

[필드 선언] 제어자 데이터타입 필드명;
ex) public string name;

  • 제어자 : 접근제한자(private, default, protected, public)와 final, static 사용
  • 필드 선언문 vs 변수 선언문
    - 필드 : 클래스에서 객체의 속성을 표현. 메서드 밖에 선언
    - 변수 : 메서드에서 필요한 값을 잠시 저장하기 위해 선언. 메서드 안에 선언

5.5 메서드

[메서드 선언] 제어자 반환타입 메서드명(매개변수) { 실행문; }
ex) public int add(int a, int b) { return a+b ; }

  • 제어자 : 접근제한자(private, default, protected, public)과 final, static, abstract 사용
  • 매개변수 : 메서드가 실행될 때 함께 전달되는 값을 저장하는 변수

5.5.2 메서드 실행을 멈추고 값 반환하기

int result = returnZeroMethod();
1) int 타입 변수 result 생성
2) returnZeroMethod() 메서드가 호출되고, 메서드 본문 실행
3) 메서드 실행이 완료되면(메서드에서 return 문을 만나면) 돌려주는 값을 result에 저장

5.5.3 매개변수

  • 인자값 : 메서드를 호출하는 곳에서 전달해주는 데이터
  • 매개변수 : 인자값을 받아 처리하려는 목적으로 선언하는 변수
  • 반환값 : 실행된 메서드가 메서드를 호출한 곳으로 전달하는 return 값

5.6 메서드 오버로딩

  • 메서드 이름은 같게, 매개변수 구성은 다르게 선언
  • 수행하는 기능은 같은데 전달받는 값에 따라 조금씩 다르게 처리하고 싶을 때 사용
  • 컴파일러가 오버로딩 된 메서드를 호출할 때의 우선순위 :
    1) 인자값의 개수 - 반드시 일치해야 함
    2) 인자값의 타입 - 일치하거나, 인자값의 타입보다 매개변수 타입이 크면 OK
  • 컴파일 시점에 메서드 이름이 "메서드이름_매개변수타입"으로 변경됨 (따라서 매개변수 이름이 달라도 타입이 같으면 같은 것)

5.7 가변 길이 인자

[가변 길이 인자] 메서드이름(데이터타입... 변수이름){ }

void test(string name, int... v){
	System.out.println(name + ":" + v.length);
}
  • 매개변수 중 가장 마지막에 선언해야 함
  • 메서드 별로 한 개만 가능
profile
개발 공부중!

0개의 댓글