클래스
: 객체를 만들기 위한 설계도 또는 틀.
객체는 클래스 모양 그대로 생성된 실체로 인스턴스라고도 칭함.
클래스는 필드 = 멤버 변수 와 메소드 = 함수 로 구성됨.
요소 : 클래스 선언, 필드와 메소드, 접근 지정자, 생성자
public class Circle { // 접근 권한, 클래스 선언, 클래스 이름
public int radius;
public String name;
public Circle(){} // 생성자 메소드
public double getArea(){ // 메소드
return 3.14*radius*radius;
}
public static void main(String args[]){
Circle pizza; // Circle 객체에 대한 레퍼런스 변수 pizza 선언
pizza = new Circle(); // Circle 객체 생성
pizza.radius =10;
pizza.name ="자바피자";
double area = pizza.getArea();
레퍼런스 변수
객체를 가리키는 변수로, 객체에 대한 주소를 가지지만
객체 자체는 아니다.
new 연산자를 이용한 객체 생성
pizza = new Circle();
생성된 Circle 객체의 주소를 pizza 변수에 대입
객체 멤버 접근
객체 레퍼런스. 멤버
생성자
객체가 생성될 때 객체의 초기화를 위해 실행되는 메소드
생성자 이름 = 클래스 이름
기본 생성자
매개 변수와 실행 코드가 없어 아무일도 하지 않고 리컨 하는 생성자
생성자가 하나라도 존재하는 클래스에는 기본 생성자를 자동으로 삽인해주지 않음.
this 레퍼런스
객체 자신을 가리키는 레퍼런스로 "현재 실행되는 메소드"가 속한 객체에 대한 레퍼런스
객체 치환 ( "=" 연산자 )
Circle ob1 = new Circle(1);
Circle ob2 = new Circle(2);
s = ob2;
ob1 = ob2;
ob1과 ob2의 레퍼런스가 동일하게 되고 기존 ob1 객체에 접근 불가 -> garbage
4.4 객체 배열
객체를 원소로 하는 배열
Circle [] c; // Circle 배열 레퍼런스 변수 c선언
c=nuw Circle[5] // 레퍼런스 배열 생성
for(int i=0; i<c.length;i++){
c[i] = new Circle(1);
배열에 대한 레퍼런스 선언
Circle [] c;
레퍼런스 변수 c만 선언, 배열 생성 x
원소 개수 지정 x
레퍼런스 배열 생성
c=new Circle[5]; // Circle 객체에 대한 레퍼런스 5갯 생성
배열의 원소 객체 접근
for ( int i = 0;i <c.length;i++){
System.out.print((int)(c[i].getArea+" ");