Java&SpringBoot

4주차) 패스트캠퍼스 Java & Springboot 로 시작하는 웹 프로그래밍

은line 2023. 2. 15. 12:11

<복습 문제>

 

 

 참조 자료형  - String/ Date/Student 등

클래스형으로 선언, 클래스에 따라 메모리 크기가 다름, String을 예외하고 사용시에 변수에대해 생성해야함

 § 정의 후 사용방법

< subject.java >

public class Subject { String SubName; int Score; }

 

 접근제어 지시자 

private - 동일 클래스 내에서만 접근 가능

protected - 동일 패키지내에서 or 상속관계에 있는 private를 사용하고 싶을때 사용하여 접근 가능

public - 어디서나 접근 가능

x - 같은 패키지내에서 접근 가능(다른 패키지에서 사용시 import )

 

 캡슐화 

정보은닉을 활용한 캡슐화 - 꼭필요한 정보와 기능만 외부 접근허용 (인터페이스만 제공함)

오류 최소화함

 

 this 키워드 

인스턴스 자신의 (heap)메모리를 가르키며 자신의 주소를 return / 생성자에서 또 다른 생성자를 호출할때 사용

클래스 내에서 참조변수가 가지는 주소값과 동일한 주소값을 가지는 키워드

ex) 위 Student 클래스에서  Student 생성자 생성 시 멤버변수을 입력 받음  > this.참조변수 = 매개변수;

 

#생성자의 역할: 인스턴스 초기화

클래스에 생성자가 여러개인 경우 생성자에서 다른 생성자 호출가능 (but, this() 선언 이전에 다른 statement 사용불가)

순서 : this(매개변수) 호출 > 매개변수 형식이 맞는 생성자 찾음 > 인스턴스 초기화 완료

main 함수에서 생성된 thisper과 class내 생성자에서 리턴해준(thisper2) 값과 동일 

 

 Static(정적) 변수  == 클래스 변수

> 공통으로 사용하는 변수가 필요한 경우, 여러 인스턴스가 공유하는 기준값이 필요한 경우

> 인스턴스 생성과 상관 없음, 클래스 이름으로 직접 참조

사용법 ) static 자료형 변수명;

ex) 입사자에게 사번 부여하는 프로그램

static형의 변수는 인스턴스 생성 전 클래스(Employee)명으로 접근하여 출력가능

> static 메서드내에서 인스턴스 변수 사용불가 (생성 전에도 static 변수가 사용가능하므로), 일반 메서드 내에서는 static 변수 사용가능

 

 Singleton패턴 

> 인스턴스가 한개만 생성되어야 하는 디자인 패턴으로 static 변수와 메서드를 활용해 구현가능

> 유일한 객체를 제공할때 구현

방법) class내  private 생성자  /유일한  private 인스턴스  / 인스턴스를 참조할 수 있는  public 메서드  생성

private 클래스명( ) { }

private static 클래스명 instance = new 클래스명();

public static 클래스명 getInstance( ) { return instance; }

 

 배열 

동일한 자료형의 순차적 자료구조로 인덱스로 빠른참조 가능 (인덱스 = 0~length-1)

ArrayList 클래스 사용 多

선언 = 타입[ ] 배열명 = new 타입[크기]    OR    타입 배열명[ ] = new int[크기] 

배열크기 = 타입의 byte * 크기 / length와 요소개수 다를 수 있음

ex)

 

** for (타입 변수 : 배열명){ }

// 배열의 요소를 인덱스0 ~ length-1까지 순차적 순회기능

 

복사

- System.arraycopy( )

: 복사본과 원본의 주소 동일, 배열요소 값 변경시 원본, 복사본 모두 변경

: 얕은 복사(주소복사)

 

 

 

 

 

> 얕은 복사와 깊은 복사

 2차원 배열 

> 선언: 타입[ ] [ ]배열명 = new 타입[행][열]  

> 초기화: 타입[ ] [ ]배열명 = {{#,$,%}, {!.@}}

 

 ArrayList 사용법 

성적 산출 프로그램

 

 

[내일배움카드], [국비지원교육]