[JAVA] 클래스와 객체

조소복·2022년 8월 2일
0
post-custom-banner

객체지향 프로그래밍(OOP)

객체란?

  • 주체가 아닌 것, 주체가 활용하는 것

장점

  • 모듈화된 프로그래밍
  • 추가/수정/삭제가 용이
  • 높은 재사용성

Class vs Object

현실의 객체가 갖는 속성과 기능은 추상화되어 클래스에 정의된다.
클래스구체화되어 프로그램의 객체가 된다.

클래스(Class)

  • 멤버 변수, 멤버 메소드 -> 구체화한 것으로 data+method를 합쳐놓은 것이다.
  • 붕어빵 틀이라고 생각하기

객체(Object)

  • class로부터 만들어진 실체
  • 붕어빵 틀로 만들어진 붕어빵
  • 클래스이름 변수=new 클래스이름(); 형식으로 객체 생성

객체 사용 순서

  1. class 설계
  2. 객체 생성
  3. 객체 사용
public class Person{
	// 멤버 변수
	int age;
    String name;
    
    // 멤버 메소드
    void printNameAge(){
    	System.out.println(name+" "+age);
    }
}

위와 같은 클래스가 생성되었을 때 아래와 같이 객체를 생성할 수 있다.

public class Test{
	public static void main(String[] args){
    	Person p=new Person();
        
        p.name="홍길동";
        p.age=26;
        
        p.printNameAge();
    }
}

Person p=new Person()의 형식으로 Person의 객체를 생성하고 p.멤버변수, p.멤버메소드 형식으로 Person의 변수와 메소드에 접근할 수 있다.

쉽게 생각하자면 Person이라는 모양의 틀이 있고 Person 모양의 p 붕어빵이 나왔다고 생각하면 된다.

Person person=new Person() 이라고 하면 Person 모양의 person 붕어빵이 나온것이다.

이때, p와 person은 모두 Person 모양을 가진 붕어빵이지 p와 person이 같은 붕어빵인 것은 아니다.

생성자

  • 조건이 있는 메소드
    조건
    - return 타입은 적지 않음
    - 클래스 이름과 동일한 이름의 함수
  • 객체 생성 시 자동 호출됨
class Test(){
	//생성자
    public Test(){}
}

//Test 객체 생성
//이때 Test 생성자도 함께 호출됨
Test t=new Test();

ex)

public test(){}
void Test(){}
Test2(){}

위의 함수 세개 모두 생성자가 아니다.

  • 함수 이름이 다른 문제
  • 리턴타입을 적은 문제
  • 함수 이름이 다른 문제

자바 공부를 시작했다. 이전에 배우기는 했지만 파이썬과 자바스크립트를 사용하다보니 희미해진 기억때문에 낯설었다.

그래도 이전에 공부했던 기억을 되살려서 열심히 다시 공부하다 보니 손이 익숙하게 움직였다. 공부했던 기록을 하나씩 정리해서 올릴 예정이다.

profile
개발을 꾸준히 해보자
post-custom-banner

0개의 댓글