JAVA/java 공부

[JAVA] class 클래스 구성요소

congs 2023. 3. 25. 16:39

클래스 

: 객체 지향 프로그래밍에서 가장 기본적인 요소 중 하나

  • 클래스 : 객체를 정의해놓은 설계도 = 객체를 생성하는데 사용
  • 객체 : 의사나 행위가 미치는 대상 = 기능과 속성을 가지고 있음

 

클래스 구성요소

  • class 명은 대문자 시작
  • class = 예약어 : class를 생성하겠다
  • 속성 = 멤버변수 / 기능 = 메서드 /  객체 초기화 = 생성자

 

1. 접근제한자 (접근제어자) : 멤버변수 선언

  1. public : 누구나 제한없이 사용이 가능
  2. protect : 나(현재class) + 같은 package + 자식 class 이용가능
  3. default : 나(현재class) + 같은 package / 생략하는 경우
  4. private : 나(현재class) : 타class에서 멤버변수,메서드 출력/변경 불가능
    • 개인정보에 많이 이용 ( 기본 )
    • 타 class에서 접근하는 경우 ) getter/setter 생성후 접근 가능

 

2. 생성자

  • 클래스의 멤버변수를 초기화하는 메서드
  • 생성자 이름 = 클래스 명
  • main메서드 밖 : 콘솔에 출력 불가
  • 메서드 사용 = 호출 먼저! ( Car c = new Car(); )
  • 빠른 사용 : 마우스 우 클릭-source-Generate Constructor using Fields
class Car { 

public Car() {} // 기본생성자( 생성자 생략시 자동생성 ) 
public Car (String color) { 
	this.color = color;
}


}

 

3. getter / setter

  • private로 생성된 멤버변수 접근, 변경을 위해 사용
  • getter : 가져오기가 가능하도록
  • setter : 변경이 가능하도록
    • private 멤버변수를 사용하지 않거나, 변경하지 않을 경우 (로고, 브랜드 명 등)
    •  => getter만 사용하기!
  • 빠른 사용 : 마우스 우 클릭-source-Generate Getters and Setters
public String getColor () { 
	return color;
}
	
public void setColor (String color) {
	this.color = color; // 내 멤버변수 color을 외부에서 받은 color로 변경!
}

 

4. toString 

: 자동으로 해당하는 멤버변수들을 한줄로 출력

  • 빠른 사용 : 마우스 우 클릭-source-Generate toString..

 

5. method 메소드

  1. 구성요소
    1. 접근제한자 : 접근할 수 있는 주체의 제한 범위  ( public = 모두 접근가능 ) 
    2. 리턴타입  : 메서드의 실행 결과로 받는 정보값의 자료형 ( void = 실행후 리턴x, int, int[].. )
    3. 메서드명 : 메서드 이름 ( 소문자 시작 )
    4. 매개변수 : 메서드를 실행하기 위해 필요한 값 ( String name )
  2. 선언 및 구현
    • 선언 위치 : 클래스 안, 다른 메서드의 밖
접근제한자 리턴타입 메서드명(매개변수) {	
	기능 구현;
}

public static int sum(int num1, int num2) {
	int sum = num1 + num2;
	return sum; 
}

public static void sumPrint(int num1, int num2) { 
	System.out.println(num1 + num2);
}

 

'JAVA > java 공부' 카테고리의 다른 글

[JAVA] class extend 클래스 상속  (0) 2023.03.25
[JAVA] class 클래스 사용  (0) 2023.03.25
[JAVA] 조건문 If문 / switch문  (0) 2023.03.25
[JAVA] Math.method  (0) 2023.03.25
[JAVA] Scanner 스캐너  (0) 2023.03.25