[JAVA] day4

99winnmin·2022년 6월 28일
1

java

목록 보기
4/10

JAVA 시작하기

캡슐화(encapsulation)

1.꼭 필요한 정보와 기능만 외부에 오픈함
2.대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함
3.각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
=> Client가 사용할 수 있는 메서드나 변수를 최소화함!!

this란?

1.인스턴스 자신의 메모리를 가리킴
->클래스 내에서 참조변수(day)가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드

2.생성자에서 또 다른 생성자를 호출 할때 사용

public class Person {

	String name;
	int age;
	//클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음
	public Person() {
    	//생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 
        //this() statement 이전에 다른 statement를 쓸 수 없음->즉 this()위에는 뭐 쓰지 말기!
		this("이름없음", 1);
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
}

3.자신의 주소(참조값)을 반환 함

public Person getPerson() {
		return this;
	}

객체 간의 협력(collabration)

1.객체 지향 프로그램에서 객체 간에는 협력이 이루어짐
2.협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함
3.매개 변수로 객체가 전달되는 경우가 발생
ex) 객체 협력의 예

static variable

여러 인스턴스에서 공통으로 사용하는 변수가 필요할 때 사용!! && 여러 인스턴스가 공유하는 기준 값이 필요한 경우

static int serialNum;

1.인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당
2.클래스 변수, 정적변수라고도 함(vs. 인스턴스 변수)
3.인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조
※static변수는 인스턴스에서 공통으로 사용하는 영역임을 알 수 있음

static method

-static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출 될 수 있음
-인스턴스 생성 전에 호출 될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없음

public static void setSerialNum(int serialNum) {
		int i = 0;
		
		employeeName = "Lee";  //오류발생
		Employee.serialNum = serialNum;
	}

변수의 유효 범위와 메모리

profile
功在不舍

0개의 댓글