카테고리 없음

[JAVA] 객체 그리고 클래스 - 필드(field),메소드(method)

하늘바람a 2024. 3. 4. 23:55
자바(JAVA)는 객체 지향 프로그래밍이다

 

객체 지향 프로그래밍

  • 소프트웨어를 개발할 때, 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법

객체

  • 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것

객체 모델링

  • 현실 세계의 객체를 소프트웨어 객체(필드와 메소드)로 설계하는 것

객체의 구성요소

  • 값 
    • 예시) 모델 번호, 색, 무게
  • 기능
    • 예시) 엑셀 밟기, 브레이크를 밟는다, 방향지시등을 켠다

객체의 상호작용

  • 객체들은 다른 객체와 서로 상호작용하면서 동작한다
  • 상호작용 수단 : 메소드
  • 객체가 다른 객체의 기능을 이용할 때 메소드를 호출한다
  • 메소드(매개값1, 매개값2, ...);
  • 메소드의 실행결과를 리턴값이라고 부른다. 리턴값은 호출한 곳으로 돌려주는 값이다.

 


 

클래스 : 객체의 설계도

 

필드(Field) : 객체의 데이터를 저장하는 역할
                    선언 형태는 변수 선언과 비슷하나 쓰임새는 다르다
메소드(Method) : 객체가 수행할 동작
                            다른 프로그램 언어에서는 함수라고 하기도 하는데, 객체 내부의 함수는 메소드라고 부른다.

 

1. 필드 선언과 사용

1.1 필드 선언

타입 필드명[=초기값];

// 예시
public class Car{
	String model;
	int speed;
	boolean start = true;}
  • 타입
    • 기본타입(byte,short,int,long,float,double,boolean)
    • 참조타입(배열,클래스,인터페이스 등)

※ 반드시 클래스 블록에서 선언되어야만 필드 선언이 된다.

 

  • 초기값을 제공하지 않을 경우, 기본값으로 초기화된다.
  • 필드 타입별 기본값은 배열의 초기값과 같다.

1.2 필드 사용

  • 필드값을 읽고 변경하는 것을 필드 사용이라고 말한다.
  • 필드를 사용하기 위해서는 필드 선언뿐만 아니라 클래스로부터 객체를 생성해야 한다.
class Student{
	// 필드 선언
	String name = "홍길동";
    int number = 5;
    }
    
public class StudentExample{
	public static void main(String[] args){
    // 객체 생성
    Student me = new Student();
    
    // Student 객체의 필드값 읽기
    System.out.println(me.name);     // 홍길동
    System.out.println(me.number);   // 5
    }
}

 

2. 메소드 선언과 호출

메소드 선언 : 객체의 동작을 실행 블록으로 정의하는 것
메소드 호출 : 실행블록을 실제로 실행하는 것

2.1 메소드 선언

리턴타입 메소드명(매개변수, ... ){
	실행할 코드를 작성하는 곳} 
// {}안은 실행블록
  1. 리턴타입 : 메소드가 실행한 후 호출한 곳으로 전달하는 결과값의 타입
    1. 리턴값 無 : void 작성
    2. 리턴값 有 : 타입 작성(String, int, double 등등)
                        실행 블록 안에서 return문으로 리턴값 반드시 지정해야함
  2. 메소드명 : 첫 문자는 소문자, 캐멀 스타일, 주로 동사로 시작한다.
  3. 매개변수 : 메소드를 호출할 때 전달한 매개값을 받기 위해 사용. 매개값이 없다면 생략가능
  4. 실행 블록 : 메소드 호출 시 실행되는 부분

2.2 메소드 호출

  • 메소드를 호출하기 위해서는 메소드 선언뿐만 아니라 클래스로부터 객체를 생성해야 한다.
타입 변수 = 메소드();

 

class calc{
	void powerOn(){ // 리턴값이 없는 메소드 선언
    	System.out.println("전원을 켭니다.");
    }
    
    int plus(int x, int y){ // 리턴값이 있는 메소드 선언
    	System.out.println("x+y = "+(x+y));
        return x+y;
        }
}

public class calcMain{
	public static void main(String[] args) {
        calc cal = new calc(); // 객체 생성
        cal.powerOn(); // 메소드 호출
        cal.plus(2,3); // 메소드 호출
    }
}