자바기초(객체지향)

bitna's study note·2022년 4월 13일
0

자바

목록 보기
43/119

4월 14일 내용정리

1.프로그래밍을 짤때 필요한거를 일단다적고, 그다음에 원하는 작업을 뽑아내기 그다음 분류
(1)먼저 필드와 메서드로 작성할거는 먼저 분류
(2)메서드만들기
(3)초기코드 짜기
(4)코드중복과 단순하게짜기 위해 코드 계속 수정하기

2.void는 메서드안에 컴파일러가 임의로 return을 넣어주며, 이것은 메서드가 끝났고, 반환값은 없으면 호출한곳으로 돌아가 그다음 실행문 실행
반환값이 있으면 반환타입과 return을 직접써주고 반환값을 호출한곳으로 데리고가서 반환값으로 어떤작업을 함.

3.클래스명 변수명 = new 클래스명(초기매개값 또는 비워둠);
위에는 실행 클래스에서 객체 생성을 하는 건데,
여기서 'new 클래스명()'는 생성자를 불러오는 작업 이다.

4.싱글톤(singleton):단 하나의 객체만 만들수 있도록하는 것.
클래스외부에서 new연산자로 생성자를 호출할 수 없다.
왜냐면 생성자를 호출한 만큼 객체가 만들어지기 때문

예)클래스 변수1=클래스.new 클래스명();
클래스 변수2=클래스.new 클래스명();
이렇게 선언하면 객체가 2개임

외부에서 생성자를 호출할 수 없도록 만들려면 생성자 앞에
private 접근 제한자를 붙여 준다.
자신의 타입인 정적필드(static 필드)를 하나 선언하고 자신의 객체를 생성해 초기화 한다.
같은 클래스 내부에서 new 연산자로 생성자 호출이 가능하다.
예)학교는 1개지만 학생은 1000명

선언클래스

package study_0414;

public class Singleton {
	//객체
	private static Singleton sing=new Singleton();
	
	//생성자
	private Singleton() {}
	
	//메서드
	static Singleton getInstance() {
		return sing;
	}
}

실행클래스

package study_0414;

public class Singleton_Test {

	public static void main(String[] args) {
		//Singleton Sin01=new Singleton(); 이러면 에러 private 이기 때문에 getInstance로 접근 
		Singleton Sin01=Singleton.getInstance();
		Singleton Sin02=Singleton.getInstance();
		
		if(Sin01==Sin02) {
			System.out.println("같은 싱글톤");
		}else {
			System.out.println("다른 싱글톤");
		}

	}

}

public class 클래스{

//정적필드(static 필드, 객체를 생성하기 전에 클래스와 동시에 메모리 읽혀짐)
private static 클래스 변수=new 클래스();
예)private static Student st =new Student();

//생성자
private클래스(){}

//정적 메서드
static 클래스 getInstance(){
return 클래스변수
}
}
*getInstance(): 외부에서 객체를 얻을수 있는 유일한 방법 단하나의 객체만 리턴
정적필드에서 참조하고 있는 자신의 객체를 리턴
클래스 변수1=클래스.getInstance();
클래스 변수2=클래스.getInstance();
// 변수1과 변수2는 동일한 객체를 참조한다. 객체를 하나만 리턴하므로

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보