반응형
Class
class의 구성
클래스
- 객체 데이터를 만드는 템플릿(설계도)
객체
- 클래스(템플릿)와 new 연산자를 통해 만든 실 데이터가 들어있는 변수
인스턴스
- 어떤 객체가 어떤 클래스의 객체인지 관계를 설명할때(객체선연 == 클래스 인스턴스화)
클래스 필드/멤버/속성
- 클래스 안에 있는 변수를 지칭
메서드
- 클래스 안에 있는 함수(function)을 지칭
생성자
- 클래스로 객체를 만들때 각 객체의 멤버 데이터(변수) 들의 값을 초기 생성 해줄수있는 특수 메서드
객체(object) / 인스턴스(instance)
class 구성 예시
public class Circle{
int radius; //속성값
String name;
public Circle(){ //생성자 메소드 객체가 생성될때 자동호출되는 특별한 메소드
}
public double getArea(){ //접근제어 원의 면적 계산 메소드
return radius * radius * 3.14 //같은 클래스 안에 있는 함수는 사용가능(참조)
}
public static void main(String[] args){
Circle pizza; //Circle 객체에 대한 래퍼런스 변수 선언
pizza = new Circle(); //객채 생성
pizza.radius = 24; //radius 필드에 저장, pizza에 radius를 . 으로 접근
pizza.name = "자바피자"; //name 필드에 "자바피자" 저장
double area = pizza.getArea();//area에 원의 면적 계산 메소드를 담는다.
System.out.println(area); //계산된 값을 출력
}
public class Circle_2{
int radius;
String name;
public Circle_2(){
}
public Circle_2(int a, String a){
)
public static void main(String[] args){
Circle_2 c = new Circle_2(); //매개변수 없는 생성자
Circle_2 pizza = new Circle_2(10, "자바피자"); //매개변수 있는 생성자
pizza.radius = 50; //pizza의 매개변수에 radius의 멤버를 접근시켜 50이라는 값을 선언(초기화)
Circle_2 donut = new Circle_2("크리스피");//이름만 갖는 매개변수
}
}
클래스 구성은 속성값을 정해준뒤 생성자 생성 후 메인문에서 객체를 생성해준뒤에 점( . ) 으로 접근하여 사용한다.
public class Book{
String title;
String author;
public Book(){ //기본 생성자
}
public Book(String t){//매개변수가 하나인 생성자
title = t;
author = "작가미상";
}
public Book(String t, String a){//매개변수가 두개인 생성자
title = t;
author = a;
}
public static void main(String[] args){
Book littlePrince = new Book("어린왕자", "생택쥐베리");
Book loveStory = new Book("춘향전");
System.out.println(litlePrince.title + " " + littlePrince.author);
System.out.println(loveStory.title + " " + loveStory.author);
클래스의 구성에 속성값을(멤버변수)를 선언해주고 메인에서 값을 입력하면 생성자에서 호출된 값을 계산하여 메인으로 값을 보내준다. 객체는 new 연산자로 생성하고, 점( . ) 연산자로 멤버를 접근할수 있다.
필드(field)
- 필드(field)란 클래스(class)에 포함된 변수(variable)을 가리킨다. 클래스(member)라고도 한다.
클래스 필드
- 클래스 필드는 선언된 위치와 선언자에 따라 다음과 같이 구분
1. 클래스 변수(static variable)
2. 인스턴스 변수(instance variable)
3 .지역 변수(local variable)
메서드(method)
- 메소드란 클래스 안에 있는 함수를 뜻한다.
메소드의 정의
메소드 오버로딩
생성자(constructor)
- 객체가 생성될 때 동적으로 인스턴스 변수 초기화를 위해 실행되는 특수한 메소드를 지칭
- int a = 1 처럼 변수에 값을 초기화 하는거 처럼 객체를 선언 할때 Car myCar = new Car(값1, 값2) 으로 클래스에 입력값을 보내 객체의 값을 초기화 해줄수 있다.
생성자의 규칙
- 객체 초기화
- 이름은 클래스 이름과 반드시 동일
- new 를 통해 객체를 생성할 때, 객체당 한 번 호출
- 객체가 생성될 때 반드시 호출됨.
- 리턴 타입을 지정할수 없음
- 개발자가 생성자를 작성하지 않았으면 컴파일러가 자동으로 기본 생성자 삽입
- 여러개 작성가능(오버로딩)
this.
- "클래스 자기 자신" 을 뜻하는 키워드
- this 참조 변수는 해당 인스턴스의 주소를 가리키고 있기 때문에 자기 자신에 접근이 가능
- 클래스 메서드에는 this 변수가 없기 때문에 사용이 불가능하다.
this. 래퍼런스
- this 는 자바의 중요한 키워드로서 단어 뜻 그대로 객체 자신을 가리키는 래퍼런스 이다.
- 현재 실행되고 있는 메소드가 속한 객체에 대한 래퍼런스 이다.
- 생성자 내부에서만 사용가능
this()
- this() 는 클래스 내에 생성자가 다른 생성자를 호출할 때 사용하는 자바코드이다.
- 생성자 내부에서만 사용가능
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 중첩 클래스, 익명객체 (0) | 2023.07.18 |
---|---|
[JAVA] 클래스 상속, 참조형 캐스팅, 추상클래스, 인터페이스 (0) | 2023.07.18 |
[JAVA] 패키지, 접근지정자, static, final (0) | 2023.07.18 |
[JAVA] 객채, 클래스, 기본생성자, 객체배열 (0) | 2023.07.18 |
[JAVA] Enum (0) | 2023.07.18 |