Java의 정석 (객체지향 프로그래밍1)1-2

ITKHJ·2023년 2월 17일
0

Java

목록 보기
3/12
post-thumbnail

JVM의 메모리 구조
1.메서드 영역

-프로그램 실행 중 어떤 클래스가 사용되면, jVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스,데이터)를 이곳에 저장한다.

-이때 그 클래스의 클래스 변수도 이 영역에 함께 생성된다.

2.힙

-인스턴스가 생성되는 공간

3.호출스택

-호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다.

기본형 매개변수

-변수의 값을 읽기만 할 수 있다.

참조형 매개변수

-변수의 값을 읽고 변경할 수 있다.

static void change(int x){}//기본형 매개변수
static void change(Date d){}//참조형 매개변수
클래스 메서드(static메서드)와 인스턴스 메서드

1.클래스를 설계할 때, 매개변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.

2.클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.

3.클래스 메서드(static 메서드)는 인스턴스 변수를 사용할 수 없다.

4.메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.

오버로딩

1.메서드 이름이 같아야 한다.

2.매개변수의 개수 또는 타입이 달라야 한다.

가변인자

-가변인자는 "타입...변수명"과 같은 형식으로 선언한다.

-가변인자를 매개변수 중에서 제일 마지막에 선언해야한다. 그렇지 않으면 컴파일 에러가 발생한다.

public PrintStream Printf(String format,Object...args){...};
생성자

1.생성자의 이름은 클래스의 이름과 같아야한다.

2.생성자는 리턴 값이 없다.

생성자에서 다른 생성자 호출하기

-생성자의 이름으로 클래스이름 대신 this를 사용한다.

-한 생성자에서 다른 생성자를 호출할 때는 반드시 첫줄에서만 호출이 가능하다.

class Car{
String color;
String greaType;
int door;

Car(){
this("blue","auto",4);
}
Car(String color){
this(color,"auto",4);
}
Car(String color,String gearType,int door){
this.color=color;
this.gearType=gearType;
this.door=door;
}
}
멤버변수의 초기화 방법

1.명시적 초기화

-변수를 선언과 동시에 초기화하는 것을 명시적 초기화라고 한다.

2.생성자

3.초기화 블럭

static{...}//클래스 초기화 블럭
{}//인스턴스 초기화 블럭

profile
모든 업무 지식 작성하자!

0개의 댓글