Day 10 . 객체 지향 프로그래밍

v_wsy_z·2022년 5월 10일
0

CodeStates

목록 보기
7/7
post-thumbnail

객체 지향 프로그래밍 ( Object Oriented Programming )

  • 객체들 간의 상호작용을 통해 프로그램이 동작

클래스 & 객체

객체

  • 필요한 데이터를 구체적으로 추상화시켜 속성(property)와 기능(function)를 가진 대상
  • 객체의 속성과 기능은 클래스에서 정의됨
  • 추상화 : 객체의 속성 중 중요한 것들만 추려내는 것
  • 인스턴스 : 실제로 생성된 각각의 객체

클래스

  • 객체를 정의하는 설계도
  • 객체를 생성할 때 사용
  • 필드메소드로 구성
 class InstanceTest
 {
 	int instance;				// 객체의 속성 정의 (필드)
    IntanceTest(){}				// 객체 최초 생성 시 호출 (생성자)
    public int methodTest(){}	// 객체의 기능 정의 (메소드)
    
 }
 
 public class Main
 {
 	public void main(String[] args)
    {
    	InstanceTest in = new InstanceTest();	// 클래스의 인스턴스화
    }
 }

필드 & 메소드

static

  • 인스턴스 생성 없이 클래스명.멤버명으로 호출 가능
  • 클래스 내부에 저장공간을 가짐 --> 모든 인스턴스에서 동일한 값을 가짐

필드

  • 클래스의 속성(property) 정의
  • 클래스에 포함된 메소드를 제외한 클래스 변수 , 인스턴스 변수
  • 클래스 변수 : static 변수 , 모든 인스턴스들이 공유하는 특정한 값
  • 인스턴스 변수 : static 없이 선언된 변수 , 선언된 인스턴스마다 다른 값을 가짐
  • cf) 지역 변수 : 메소드 내부에 선언된 변수 , 메소드가 종료되면 없어짐
class Static
{
	int st1 = 10;			// 인스턴스 변수
    static int st2 = 10;	// 클래스 변수
    public void Method()	// 메소드
    {
    	int st3;			// 지역 변수
    }
}

public class StaticTest
{
	public static void main(String[] args)
    {
    	Static stInstance1 = new Static();
        Static stInstance2 = new Static();

        stInstance1.st1 = -10;
        stInstance2.st1 = 100;
        System.out.println(stInstance1.st1);	// 출력 결과 : -10
        System.out.println(stInstance2.st1);	// 출력 결과 : 100

        stInstance1.st2 = -10;
        stInstance2.st2 = 100;
        System.out.println(stInstance1.st2);	// 출력 결과 : 100 
                                                // --> stInstance2에서 변경한 값이 stInstance1에도 반영
        System.out.println(stInstance2.st2);	// 출력 결과 : 100
        System.out.println(Static.st2);			// 출력 결과 : 100 --> 클래스에서 바로 호출해도 가능
    }
}

메소드

  • 클래스의 기능(function) 정의
MODIFIER RETURNTYPE METHODNAME(PARAMETER)
{
	METHOD BODY
}
  • 제어자(modifier) : 클래스, 메소드, 변수의 부가적인 의미 부여
    • 접근 제어자 : public , protected , (default) , private
    • 그 외 : static , final , abstract ...
  • 반환타입(return type) : 해당 메소드가 동작을 완료하고 반환하는 값의 타입
    • int , double , char , String , void...
  • 변수명(method name) : 호출하기 위한 변수의 이름
  • 매개변수(parameter) : 인수로 전달받은 값을 메소드 내부에서 사용 가능하게 하는 변수

0개의 댓글