0%

JavaClass

클래스(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;

클래스 사용해보기

image

image

Person안에 this는 생성된 인스턴스값(본인)을 의미합니다.

메소드의 4가지 형태

  1. 화면에 출력만 하고 끝나는 기능 hello1()
  2. 매개변수를 받는 경우 hello1(String to)
  3. return값을 돌려주는 경우 hello2()
  4. 매개변수를 받아서 return하는 경우 hello2(String to)