study/JAVA 🦊

JAVA - 4

서나쓰 2020. 12. 27. 15:39
728x90

객체

객체란?

  • 존재하는 것에 이름을 붙여놓고 특성을 부여한 것

프로그래밍에서 객체란?

  • 프로그램에서 표현하고자 하는 기능을 묶기 위한 단위
✅ 객체 = 기능(함수, 메서드) + 데이터(멤버변수, 프로퍼티)

프로토타입이란?

  • 상품화에 앞서서 핵심 기능만 넣은 기본 모델, 기초 버전, 변화에 대응 쉬움

클래스

클래스란?

  • 객체의 설계도 역할을 하는 프로그램 소스 → 같은 속성, 다른 객체

→ 클래스 안에 포함된 멤버변수와 메서드를 그룹화하기 위해 작성한 것

✅ 멤버변수 : 변수, 전역변수 ex> int age; 같은 것
✅ 메서드 : 함수 ex> void print(), int plus() 등 기능으로 묶인 것
  • 멤버변수와 메서드는 여러 개 존재할 수 있다

객체의 할당

  • 클래스이름 객체이름 = new 클래스이름();

    → 하나의 클래스가 정의되면, 그 클래스의 구조를 기반으로 하는 여러 개의 객체를 생성할 수 있다.

        이 말은, 하나의 클래스로 여러 개의 객체를 생성할 수 있다.

객체의 사용

  • 객체를 사용할 때 변수나 메서드는 점(.) 으로 연결하여 접근
  • 같은 클래스를 통하여 생성된 객체라도 서로 다른 값 대입 가능
  • 클래스에서 멤버변수에 대입된 값은 객체를 통하여 값을 지정하기 전까지 사용될 "기본값"의 의미이다.
class foo { 
	String name = "얌얌"; 
    int age = 20; 
    //이때 지정된 값은 기본값이다 
    //객체를 생성하여 새로 값을 대입하지 않으면 값은 변하지 X 
}
  • 하지만 일반적으로 멤버변수에 값을 초기화하지 않고 선언만 한다.
  • 두 개 이상의 메서드가 서로 동일한 대상을 위해 존재할 경우, 클래스에 포함시켜 그룹화한다.
  • 메서드들이 멤버변수를 공유할 경우 전역변수라고 한다. (공유 자원)
  • 메서드 안에서 선언된 변수는 지역변수라고 한다. → 메서드 안에서만 사용
class HelloWorld {
	String message; //멤버변수 = 전역변수 

	void sayHello() { System.out.println(message);} 
	void setEng() { message = "Hello Java"; } 
	void setKor() { message = "안녕하세요. 자바."; } 
}
  • 결과값을 리턴하는 경우, 객체를 여러 개 생성할 필요 없이 하나의 객체를 재사용하는 것이 바람직하다.
Calc c1 = new Calc(); 
int a = c1.sum(100,200); 
int b = c1.sum(200,300);

 


THIS

this란?

  • 클래스 안에서 자기 자신을 표현한다.
calss foo {
	String name; 
    public void setName() { 
    	String name; 
        name = "얌얌"; 
    } 
}
  • 이 코드에서 '얌얌'이 들어가는 곳은 4번째 줄의 name에 들어가게 된다.

→ 멤버변수와 지역변수가 동일한 이름으로 존재하는 경우 범위가 작은 변수 우선적으로 인식한다.

calss foo { 
	String name; 
    public void setName() {
    	String name; name = "얌얌"; 
        this.name = "쭈삼"; 
    } 
}
  • '얌얌'이 4번 name에 대입이 되었다면, '쭈삼'은 this가 붙어서 2번 라인 name으로 대입이 된다.
✅ 모든 멤버변수 앞에는 this를 붙이는 것이 좋다. 하지만 메서드 앞에는 굳이 this를 붙이지 않는다. 왜냐하면, 다른 클래스의 메서드를 이름만으로 호출이 불가능하기 때문에 쓰지 않는다.

생성자

생성자란?

  • new 키워드를 사용하여 객체가 생성될 때 자동으로 실행되는 특수한 형태의 메서드이다.
class foo { 
	foo() { <- 이 블럭이 생성자이다 
	//생성자는 있지만, 내용은 비어있다 
    } 
}

생성자의 특징

  1. 클래스와 이름이 똑같다.
  2. 리턴형이 없다.
  3. 객체가 생성되면 자동으로 생성되기에 객체 초기화 때 사용한다.
  4. 따로 코딩하지 않아도 Java에서는 기본 생성자가 있다고 인식한다.

파라미터를 갖는 생성자

  • 생성자의 파라미터를 멤버변수에 복사하는 것으로 객체의 초기화 때 사용한다.
  • 파라미터가 정의된 경우 객체 생성 때 파라미터를 전달해야 한다.
Foo obj = new Foo("얌얌", 19);
	//파라미터 지정이 있을 경우 파라미터 같이 전달
728x90

'study > JAVA 🦊' 카테고리의 다른 글

JAVA - 6  (0) 2020.12.28
JAVA - 5  (0) 2020.12.28
JAVA - 3  (0) 2020.12.27
JAVA - 2  (0) 2020.12.26
JAVA - 1  (0) 2020.12.26