JAVA 기초 : 클래스와 객체

mark1106·2023년 7월 14일
0

JAVA

목록 보기
4/11
post-thumbnail

객체지향 프로그래밍 OOP(Object-Oriented Programming)란?

현실 세계의 사물이나 개념을 객체(Object)로 표현하고 이들 객체 간의 상호작용을 통해 프로그램을 구성하는 방식이다.

객체지향 프로그래밍 특징
1. 추상화 : 클래스들의 공통적인 특성들을 묶어 표현하는 것
2. 상속성 : 부모 클래스에 정의된 변수 및 메서드를 자식 클래스에서 상속받아 사용하는 것
3. 다형성 : 다양한 형태로 표현이 가능한 구조
4. 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 것

클래스(Class)

객체지향 프로그래밍을 하기 위해 객체를 생성해야 한다.
먼저 객체를 생성하기 위해서는 객체를 만들 설계도, Class를 만들어야 한다.
Class는 객체가 어떤 데이터를 갖고 어떤 연산을 하는지 정의한다.

클래스의 구성 요소

변수 : 객체지향 개념에서 속성에 해당하는 것
메서드 : 객체지향 개념에서 동작에 해당하는 것(함수)

인스턴스(instance)

우리는 위에서 객체를 생성한 것이 아니라 정의만 한 상태이다.
따라서 객체를 new 키워드로 생성해 줘야 한다.

인스턴스 생성 방법

Student student1 = new Student();
클래스 , 변수이름 , 생성자

Student 객체를 생성해 주었지만 student1에는 아무런 학생 정보가 없는 상태이다.
따라서 생성한 객체에 대한 정보를 입력해야 한다.
(객체 이름.속성)을 통해 값을 지정해 줄 수 있다.

하지만 이렇게 일일이 값을 넣어주는 것은 비효율적이다.
우리는 생성자라는 것을 통해 효율적으로 객체를 생성할 수 있다.

생성자(Constructor)

생성자는 객체를 생성할 때 호출하는 메서드로 객체를 생성과 동시에 인자 값을 넘겨주어 초기화 시킬 수 있다.

Student 클래스에 다음과 같이 생성자를 만들 수 있다.

Student 객체를 생성할 때 student에 대한 정보들을 전달해주어 생성과 동시에 student에 대한 정보를 받을 수 있다.

오버로딩

위에서 우리는 인자 값이 6개인 Student 생성자를 만들었다.
하지만 많은 양의 정보로 객체를 생성하고 싶지 않고 이름과 성별 정보로만 생성자를 형성하고 싶다면 어떻게 할까?

이 때 우리는 오버로딩을 할 수 있다.

오버로딩이란?

메서드 이름은 동일하지만 매개변수(인자)가 다른 여러 메서드를 만드는 것

Student 클래스에 똑같은 Student 생성자이지만 인자가 다른 것을 확인할 수 있다.

오버로드 생성자를 활용해보자.

student 객체를 만드는데 6개의 인자 값을 전부 넘겨주는 대신 오버로드를 통해 이름과 성별만 넘겨주어도 객체를 생성할 수 있다.

0개의 댓글