본문 바로가기

WEB

[JAVA] 클래스와 객체 01

● 객체지향 프로그래밍의 특징

● 클래스, 객체, 인스턴스의 의미

● 클래스를 생성하고 사용하는 방법

● 인스턴스 변수와 인스턴스 메소드에 대해 학습

 

1. 객체지향 프로그래밍 

=> 모든 데이터를 object로 취급하여 프로그래밍 하는 방법

 

ㅁ 객체지향 프로그래밍의 특징

- 자료 추상화

- 상속

- 캡슐화

- 다형

 

2. 클래스, 객체, 인스턴스

 

⊙ 객체 (≒ 인스턴스)

: 서로 다른 많은 데이터를 하나로 묶어서 표현한 것

   클래스 

: 객체를 만드는 도구,

  객체를 정의해 놓은 것

 

ㅁ 클래스를 사용하는 이유

-> 코드의 재사용성 , 코드의 중복을 제거하여 오동작 방지

 

ㅁ 클래스의 정의와 객체 생성

- 클래스 정의 : 클래스를 작성하는 것

- class 키워드로 클래스를 정의

- 객체 생성 : 클래스명 객체 = new 클래스명()

- 객체 호출 : 객체명.변수명 / 객체명.메소드명()

class Car { # 클래스 정의 
	boolean powerOn;
    String colorString;
    int wheel;
    int speed;
    boolean wiperOn; # 클래스 안에서 변수를 생성
}

public class Test {
	public static void main(String[] args) {
    	
        Car my_car1 = new Car(); # Car 클래스의 객체생성
        Car my_car2 = new Car();
        
        System.out.println(my_car1.color); # my_car1 객체의 변수 출력
        
        my_car1.color = "red"; # my_car1 객체의 변수에 값을 저장
        my_car2.color = "blue";
        
        System.out.println(my_car2.color);
        }
}

 

3. 메소드

 

●  메소드란?

- 특정 객체/데이터 자료형이 가지고 있는 함수(function)

- 데이터와 멤버 변수에 대한 접근 권한을 가짐

 

●  메소드 호출 방식

- 특정 객체를 통해서만 호출 가능

- 객체 + '.'(마침표)를 통해 호출 가능

ex)

ArrayList <Integer> my_list = new ArrayList<>();
my_list.add(3);
my_list.clear();

 

ㅁ 함수와 메소드의 차이점?

함수 : 독립적으로 호출 가능

메소드 : 특정 객체가 필요함

 

●  사용자 메소드 (사용자 함수)

: 사용자가 직접 만든 함수

  내장함수 외의 기능 혹은 자신이 원하는 기능을 작성

 

ㅁ 사용자 메소드의 정의

- return문은 반환값이 없을 경우에는 작성 X

- 메소드의 반환 타입이 void일 경우를 제외하고는 반드시 메소드 내부에 return문이 있어야 함

- 메소드 이름은 사용자가 지정

반환타입 메소드명 (자료형타입 매개변수, 자료형타입 매개변수, ...) {
	본문
    return 반환값;
}

 

ㅁ 메소드 호출

- 정의된 메소드를 사용하는 것 (정의 후 사용)

참조변수.메소드명(인수);

 

 

4. 클래스의 구성

: 클래스는 객체가 가져야 할 값과 기능을 가져야함

객체 [ 변수(인스턴스 변수): 명사적 성격

         / 함수(인스턴스 함수): 동사적 성격

        ]

 

● 인스턴스 변수와 인스턴스 메소드

ㅁ 인스턴스 변수

(1) 클래스 기반으로 만들어지는 모든 인스턴스들이 각각 따로 저장하는 변수

(2) 객체마다 가지는 고유한 변수

(3) 인스턴스 생성할 때 만들어짐

(4) 인스턴스마다 다른 값을 가져야 할 경우 인스턴스 변수로 선언

 

ㅁ 인스턴스 메소드

(1) 객체를 생성해야 호출이 가능한 메소드

(2) 객체가 생성되어야 메모리에 올라감

(3) 메소드 앞에 static이 붙어있지 않음

 

● 클래스 변수와 클래스 메소드 // 정적 변수와 정적 메소드

ㅁ 클래스 변수 

(1) 모든 인스턴스가 동일한 값을 사용할 때 ㅈㅇ의함

(2) 모든 인스턴스들이 공유하도록 처리

(3) 클래스가 처음 메모리에 로딩될 때 생성

(4) 변수 선언 시 static 키워드 사용

 

ㅁ 클래스 메소드

(1) 객체를 생성하지 않아도 호출이 가능

(2) 메소드 선언 시 static 키워드를 사

'WEB' 카테고리의 다른 글

[JAVA] 클래스와 객체 02  (0) 2024.03.21
XML 기본 문법  (0) 2024.03.18