※ 개인적인 개발 수업 정리글입니다. 꾸준히 정리할 예정이고 틀린 부분이 있다면 언제든지 댓글 환영입니다.
책 127쪽
6. this 키워드
프로젝트 06Day_0_this
자, 이제, 단축키로 한꺼번에 만들거임
코드창에서 " 마우스 오른쪽 키 " or " Alt + Shitft + S "
ㄴ이건 Constructor using Fields 필드를 이용해서 생성자를 만든다
ㄴ이건 toString
ㄴ겟셋 함수는 일케 변수 선택해서 만들 수 있음
프로젝트 06Day_1_method3_start
책132쪽
7. package와 import
┌ 패키지 이름 그대로 임포트┐
┌ Random 상수? 만드는 자바.유틸리티 임포트┐
┌ 날짜 Calendar 자바.유틸리티 임포트┐
┌ 최종적으로 모두 임포트 끝냈을때┐
┌ 패키지의 Full name을 적어도 되지만 지저분해지니까, 되도록 유틸리티 임포트 ┐
┌ [임포트한 패키지], [패키지 이름 그대로 나열한거] 2개 같이 사용 가능!┐
책136쪽
5장. 객체와 클래스
■ 8. static 키워드
서로 관련이 있는 여러 클래스를 실행하게 되면,
static이 붙은 변수를 먼저 만들어줌.
클래스의 멤버변수는 만들어지는 시점은, new로 객체생성 될 때되고,
로컬변수는 함수가 호출돼서 실행이 되어야만 실행이 될 때고,
static은 클래스를 만들면 가장 먼저 준비가 되어 잇음.
프로젝트 06Day9_staticBlock
객체 두 군데서 나눠 사용하는 공유 변수가 될 수 있음
new하는 순간은, 각각 다른 공간을 만들어 냄
제일 먼저 호출되고,
최초에 딱 1번만 호출됨
프로젝트 06Day7_0_static 의 TestMain
main함수 있는 클래스로 만들고, 그 위에 새로운 두번째 클래스를 생성함
프로젝트 06Day7_1_static 의 Person, TestMain
책 142쪽
■ 8.3 싱글톤 디자인 패턴(Singleton Design Pattern)
-하나의 인스턴스만을 생성하기 위한 패턴. 현실세계에 존재하는 객체 중에 유일한 객체가 존재하듯이 가상세계에
서도 단 하나의 인스턴스만 생성하고자 할 때 사용되는 방법
1. 외부에서 객체생성하지 못하도록 생성자의 접근 지정자를 private로 지정. private은 같은 클래스에서만 접근 가능
2. 단 한번은 생성해야 되기 때문에 자신의 클래스에서 static객체생성 지정자를 사용하여, 프로그램 실행시 단 한번 생성
3. 싱글톤 private생성자는, 외부에서의 객체생성은 불가능하지만 속해있는 클래스 내부의 멤버들의 접근은 허용해야함.
따라서 2번에서 생성한 객체의 참조변수를 static 메서드를 이용해서 외부에 리턴해줌.
static 메서드를 사용해야 되는 이유는 객체생성 없이 사용할 수 있기 때문이다.
4. 외부에서는 [ 클래스.static인 메서드 ] 로 다른 멤버들에 접근 가능.
new 클래스명( ) 형태가 아닌 다음과 같은 구조로 사용하면, 싱글톤 디자인 패턴이 적용된 코드
클래스명 참조변수 = 클래스명.메서드( ); //싱글톤 디자인 패턴
프로젝트 06Day8_0_SingleTone 의 클래스Bank
책142쪽
1) private Bank 기본 생성자가 있고
2) Bank타입의 객체를 생성해서, private static Bank 타입에 넣어서 b라는 변수로 부를건데
3) public static Bank타입의 getBank 함수는 [ private static Bank 타입의 객체를 가진] b변수를 return.
다만 static은 단 한번만 생성하기 때문에 더이상 생성되지 않음. 하지만 public 함수기 때문에
4) TestBank클래스에서 Bank타입의 getBank함수로 호출해서 생성 가능. 다만 외부 클래스에서 직접 Bank 클래스의 변수와 생성자에 접근은 불가. getBank함수로 둘러서 가능.
┌클래스Bank┐
┌뭐가 생성자고, 뭐가 함수고 뭐가 빠진건지 몰라서 2021-07-26 클래스Bank 다시 정리한거┐
┌클래스TestBank 정리한거┐
[ SingleTone 실습 Ex05_21]
프로젝트 06Day8_0_SingleTone 의 Ex05_21_SingleTone.java 파일
원래는 새롭게 각각 객체생성하면
각각 b1과 b2의 주소는 달라야하는데,
책엔 없는 예제
프로젝트 06Day7_1_static의 Person, TestMain 클래스
┌Pesron 클래스┐
ㄴstatic이 붙은 b함수 안에는, 같은 클래스의 멤버변수를 사용못함.
┌TestMain 클래스┐
프로젝트 06Day8_1_MethodCall의 Ex05_12_1
■ 9. final 키워드
- 클래스에 사용하면 -> 상속이 불가능
- 변수에 사용하면 -> 값 변경이 불가능. 변수와 구별하기 위해서 일반적으로 대문자로 표현
- 메서드에 사용하면 -> 오버라이딩이 불가능
public static final 데이터형 전부대문자변수명 = 값;
■ 10. Vararge ( 가변 인자)
-메소드나 생성자 호출할때, 인자의 개수가 반드시 일치해야함
-근데 Vargargs 사용하면 반드시 일치하지 않아도 호출이 가능함.
-마침표 . 를 사용해서 전달된 인자들은 모두 배열로 관리됨. 인자들의 데이터형은 모두 동일해야함.
지정자 리턴타입 메서드명( 데이터형 ... 변수명){}
프로젝트 06Day10_object_array Student,TestStudent클래스
┌Student 클래스┐
┌TestStudent 클래스┐
'Govern > Eclipse SE -설치,문장,배열' 카테고리의 다른 글
07-15(목) 지정자 생성자 매개변수 (0) | 2021.07.15 |
---|---|
07-14(수) 배열, Arrays API (0) | 2021.07.14 |
07-13(화) for문,break,continue (0) | 2021.07.13 |
07-12(월) 문장 (0) | 2021.07.12 |
07-09(금) 형변환 연산자_valueOf,parseInt,전치후치,&& (0) | 2021.07.09 |