관리 메뉴

Jsecurity

Java 6일차 : 클래스, 객체, 생성자, this 레퍼런스 본문

프로그래밍언어/Java_Language

Java 6일차 : 클래스, 객체, 생성자, this 레퍼런스

Great king 2018. 11. 7. 19:09
클래스
객체를 만들어내기 위한 설계도 혹은 틀
객체의 속성(state)과 행동(behavior) 포함

객체
클래스의 모양 그대로 찍어낸 실체, 프로그램 실행 중에 생성되는 실체
메모리 공간을 갖는 구체적인 실체, 인스턴스(instance)라고도 부름









클래스 구성선언

필드와 메소드
필드 (field) : 객체 내에 값을 저장하는 멤버 변수
메소드 (method) : 함수이며 객체의 행동(행위)를 구현

필드의 접근 지정자, public
필드나 메소드 앞에 붙어 다른 클래스의 접근 허용을 표시
public 접근 지정자 : 다른 모든 클래스의 접근 허용

생성자
클래스의 이름과 동일한 특별한 메소드
객체가 생성될 때 자동으로 한 번 호출되는 메소드
개발자는 객체를 초기화하는데 필요한 코드 작성

객체 생성
반드시 new 키워드를 이용하여 생성
new는 객체의 생성자 호출






-------------------------------------------------------------------------------------------------







※클래스의 객체 생성 및 활용 에제

public class Circle {

  intradius;  // 원의반지름 필드

  Stringname;  // 원의이름 필드

  public Circle(){ }    //원의 생성자

  publicdoublegetArea()  // 원의면적 계산 메소드

  return3.14*radius*radius;

  }

  publicstaticvoid main(String[] args) {

  Circlepizza;

  pizza=new Circle();   // Circle객체 생성

  pizza.radius = 10;  // 피자의반지름을 10으로 설정

  pizza.name="자바피자";   // 피자의이름 설정

  doublearea= pizza.getArea();   // 피자의면적 알아내기

  System.out.println(pizza.name+"의 면적은 "+ area);

  Circledonut= new Circle();   // Circle객체 생성

  donut.radius = 2;   // 도넛의반지름을 2로 설정

  donut.name="자바도넛";   // 도넛의이름 설정

  areadonut.getArea();   // 도넛의면적 알아내기

  System.out.println(donut.name+"의 면적은 "+ area);

  }

}


자바피자의 면적은 314.0

자바도넛의 면적은 12.56






-------------------------------------------------------------------------------------------------





생성자

객체가 생성될 때 초기화를 위해 실행되는 메소드








기본 생성자(default constructor)

매개 변수 없고 아무 작업 없이 단순 리턴하는 생성자

디폴트 생성자라고도 부름


-------------------------------------------------------------------------------------------------

※ this()
객체 자신에 대한 레퍼런스
컴파일러에 의해 자동 관리, 개발자는 사용하기만 하면 됨
this.멤버 형태로 멤버 사용

this의 필요성
객체의 멤버 변수와 메소드 변수의 이름이 같은 경우
다른 메소드 호출 시 객체 자신의 레퍼런스를 전달할 때
메소드가 객체 자신의 레퍼런스를 반환할 때








Comments