2022. 8. 1. 15:56ㆍGolfzon tech/TIL
Today I Learned
- 클래스
- 객체
- static
- 메서드
- 오버로딩
- 오버라이딩
- 접근제한자
VO 파일 작성
- 필드값
- 매개변수가 없는 생성자
- 매개변수가 있는 생성자 (모든 속성을 매개변수로 하는 생성자 , 필요한 것만 써도 되고)
- getter (읽기) / setter (쓰기) 생성
- toString 재정의 (해도 되고 안해도 되고)
- hashCode & equal 재정의 (해도 되고 안해도 되고)
main 에서 출력할 때 getter로 출력해도 된다.
접근제한자
public : 외부 클래스가 자유롭게 사용 가능
private : 외부에서 사용될 수 없다.
protected : 같은 패키지 또는 자식 클래스에서 사용할 수 있다.
default : 같은 패키지만 사용! 아무런 접근 제한자가 선언되지 않았다면 default !
ScoreVO vo = new ScoreVO(); // 우측은 콜만할거야! 뜻이고 vo 객체변수 있으면 할당될거야! 라는 말.
System.out.println() : println() 메서드 자체가 toString 을 가지고 있다. 물론 toString() 을 붙여서 써도 된다.
오버라이딩은 상속일 때만 가능하다.
생성자에서 속성을 초기화한다. initialization fields : 속성 초기화
Score s = new Score();
// 콜한거다. 생성자라서 new 해서 콜한거다. Score 타입으로
메서드
// 3. method : 함수 , function
// static or instance
public void start()
{
// 기능.
}
public static void stop()
{
// 기능.
}
static vs nonstatic
public class Test{
static int A;
int B;
// B를 main 에서 출력하기 위해서는 객체를 생성한 후에 사용할 수 있다. main은 static 이기 때문에
}
class Test01{
int num;
static int num2;
}
public static void main(String[] args) {
// num2를 출력하고 싶다면
System.out.print(Test01.num2); // 클래스 이름. static 변수를 작성해주어야한다.
System.out.print({객체를생성한 후 객체변수}.num);
}
// static 을 사용할 때도 있고 안할 때도 있다. 왜그럴까? - static 이 사용할 수 있는 메모리가 정해져 있기 때문에
// static은 가장 먼저 올라가기 때문에 엄청 빠르지 하지만 메모리에 올릴 수 있는 한계가 있다.
// 데이터가 안바뀌는 상황이면 static 이 좋다.
// 메모리의 오버플로우를 넘어갈 때 까지 써버리면 문제가 생기지
싱글턴 패턴
// 싱글톤 패턴은 한가지만으로 데이터를 바꾸지 않을거에 쓴다. 클래스가 싱글톤으로 쓰이니까
// static 은 가비지컬렉터에서 지울 수 없다. 메모리가 끝까지 가기 때문에...
public class Test02SingleTon {
// 싱글톤
static Test02SingleTon singleTon = new Test02SingleTon();
// private 이니까 밖에서는 쓸 수가 없지.
private Test02SingleTon() {
// TODO Auto-generated constructor stub
}
public static Test02SingleTon getInstance() {
return singleTon;
}
}
싱글턴은 new 를 한번만 써서 getInstance 메서드를 아무리 새로 만들어도 주소값이 값다.
Test02SingleTon singleTon1 = Test02SingleTon.getInstance(); // 싱글턴 호출
System.out.println(singleTon1);
// 주소가 같다. new 를 한번만 썼으니까. 계속해서 객체 이름 바꿔가면서 써도 주소가 같다.
Test02SingleTon singleTon2 = Test02SingleTon.getInstance(); // 싱글턴 호출
System.out.println(singleTon2);
같다.
'Golfzon tech > TIL' 카테고리의 다른 글
[2022-08-03] TIL - 7일차 (0) | 2022.08.03 |
---|---|
[2022-08-02] TIL - 6일차 (2) | 2022.08.03 |
[2022-07-29] TIL - 4일차 (0) | 2022.08.01 |
[2022-07-28] TIL - 3일차 (0) | 2022.07.29 |
[2022-07-27] TIL - 2일차 (0) | 2022.07.28 |