본문 바로가기

Study/Java

[java] 객체지향

Object(객체)

 사전적 의미 - 눈에 보이는 모든 것

 Java에서의 의미 - 모든 대상을 상태와 행동으로 구분할 수 있는 것(추상화)

 상태를 변수로써, 행동을 메소드로 프로그램화 시킨다.

 

객체와 클래스

- 실제로 활용하는 것은 객체다.

- 클래스 안에서 객체는 생성된다.

하나의 클래스에서 여러 개의 객체를 만들 수 있다.

- 클래스와 객체는 다르다.

ex> 붕어빵과 붕어빵틀

 

객체의 생성

new 연산자 + 클래스 이름 + (객체생성 데이터 값);

Account obj = new Account();

            └객체를 얻는 변수└객체 생성하는 식

 

위 식에서  obj를 객체 또는 레퍼런스 변수라 한다.

C언어에서는 참조 변수라고도 한다.

객체의 주소값을 가지고 있어 접근 기능도 한다.

클래스는 객체를 생성하는 도구인 동시에 객체의 종류를 나타내는 데이터 타입이다.

 

class Account {...} -> 클래스(ex>붕어빵틀)

객체생성 : ac1(ex>붕어빵) - 변수,메소드 -> 메모리 생성

- 객체생성 수에 따라서 메모리가 생성된다.

- 새로운 객체생성에 따라서 새로운 메모리가 생성된다.

 

객체 초기화(멤버변수를 초기화)

- "." 을 통해 접근해서 멤버 변수를 초기화한다

ac1.accountNo = "1111-2222";

 

메소드를 통해서 접근하는 방법

- setter 메소드를 이용해서 멤버변수를 초기화

public void setAccountNo(String accountNo) {

 this.accountNo = accountNo;

}

ac.setAccountNo("8888-9999");

 

생성자를 통한 멤버 변수 초기화 방법

생성자는 새로운 객체가 생성될 때 객체를 초기화하기 위해 자동으로 호출 되는 것

 

생성자 정의 방법

public 클래스이름(인자들) { 객체 초기화 내용 }

 

디폴트 생성자

- 새로운 객체를 생성할 때 생성자들 호출하기 때문에 반드시 생성자를 정의해주어야 한다.

Account ac1 = new Account();

 

->public Account() { } //디폴트 생성자

->JVM이 기본적으로 생성해준다.

but, 인자가 있는 생성자는 자동으로 디폴트 생성자를 생성해주지 않는다.

 

오버로딩

같은 클래스 안에서 이름이 같은 메소드나 생성자를 구별하기 위한 방법

오버라이딩

상속 관계의 클래스에서 이름과 인자가 같은 생성자나 메소드를 새로 정의 해 주는 것

 

This

- 현재 자기자신의 객체이다.

A 클래스 안에 this가 있으면 A 클래스는 this의 해당 클래스가 되는 것이다.

- this함수는 생성자 안에서 첫번째 줄에서 다른 생성자를 호출한다. 단, 맨 앞에 먼저 써줘야한다.

 

사용법의 예 : this(name, id, password);

 

접근제어자

- 접근을 제어하기 위한 것

public > protected > default > private

 

Private

- 같은 클래스 내에서만 접근을 허락한다.

 setter & getter 메소드

Default

- 같은 폴더 안에서만 접근을 허락한다.

Protected

Public

- 누구나 접근을 허락한다.

 

final -> 이 메소드나 변수를 더이상 오버라이딩하지 말란 말!!!

 

인자가 무엇이고, 리턴형이 무엇인지..

메소드 안에서 또 다른 메소드를 사용가능

'Study > Java' 카테고리의 다른 글

[java] for문의 활용  (0) 2019.05.15
[java] 객체지향 실습  (0) 2019.05.14
[java] 조건문, 반복문 예제  (0) 2019.05.14
[java] 조건문, 반복문  (0) 2019.05.14
[java] 기초, 변수, 형변환, 연산자  (0) 2019.05.14