클래스(Class)
객체지향 프로그래밍이란?
객체 지향 언어에서 객체는 데이터나 데이터와 관련된 동작을 모두 포함하는 개념을 말합니다. 따라서 객체 지향 언어는 프로그램을 객체 단위로 나누어서 객체를 중심으로 프로그램을 구성하는 언어입니다.
특징
- 추상화
- 실제 세상을 프로그래밍으로 옮길 수 있게, 필요한 기능들만 가져와서 단순화
- 캡슐화
- 보안적인 기능에 도움을 줌, 규칙 정의, 사용 용도 명확히. 안에 값을 노출하지 않음
- 상속성
- 부모를 지정하고, 부모의 특성들을 가져다 쓸 수 있는것. 코드의 재사용성 용이
- 다형성
- 변수가 여러가지 모습으로 변할 수 있는 것
클래스
사물 하나 하나를 기능별로 묶어서 사용하는 것. 각 클래스 안에서 역할에 따라 각 클래스의 기능을 서술해나갑니다. 사람에 따라, 같은 프로그램을 만들더라도, 여러가지 관점으로 만들 수 있습니다. 자바에서는 어떤 프로그램이든 클래스 안에 속해있습니다.public static void main(String[] args)
기능도 class안에 속해 있습니다.
1 | public class 클래스이름{ |
2 | public static void main(String[] args){ |
3 | // 프로그램 시작 시점 |
4 | } |
5 | } |
클래스의 구조
- 멤버변수
- 클래스안의 기능을 꺼내서 사용할 때 사용
- 저장할 공간
- 메서드(Method)
- 기능을 나타냄
- ()가 항상 붙어있음
- 생성자(constructor)
- 처음에 값을 넣어줄 때 사용(default값)
1 | public class 클래스이름{ |
2 | // 멤버변수 |
3 | int a; |
4 | int b; |
5 | |
6 | 클래스이름(){ |
7 | a = 1; |
8 | b = 2; |
9 | } |
10 | //메서드 |
11 | public static void main(String[] args){ |
12 | //프로그램 시작 시점 |
13 | } |
14 | } |
멤버 변수에 static을 붙여줄 경우, 메모리를 정적으로 사용하겠다는 의미입니다.(메모리 주소 위치가 바뀌지 않습니다.)static int a = 10;
클래스 사용해보기
Person
안에 this는 생성된 인스턴스값(본인)을 의미합니다.
메소드의 4가지 형태
- 화면에 출력만 하고 끝나는 기능
hello1()
- 매개변수를 받는 경우
hello1(String to)
- return값을 돌려주는 경우
hello2()
- 매개변수를 받아서 return하는 경우
hello2(String to)