[Java]기본6~15강 까지의 내용 정리

메서드부터 배열응용까지

클래스 메소드 사용 방법

클래스명.메소드명()

클래스 내부에 위치한 메소드는 바로 호출이 가능하다

메소드 실행 순서

Stack과 같다, 가장 먼저 실행된 메소드는 가장 나중에 종료

메소드 오버로딩이란?

  • over(넘치다)+load(저장하다)로, 메소드의 이름이 같으면서 매개변수의 자료형,갯수, 순서 중 하나 이상이 다른 경우
  • 동일한 메소드 명으로 실행 가능
  • 오버로딩 ≠ 오버라이딩

생성자

  • 생성자는 return 값이 없다
  • 클래스 명과 같다
  • 매개변수가 있을 수도, 없을 수도 있다
  • 모든 클래스는 생성자가 1개 이상 존재, 생성자가 없으면 컴파일러가 자동으로 기본 생성자 추가
  • 객체가 생성될 때 가장 먼저 실행

생성자의 용도

객체 초기화, 객체 필드 초기화

생성자 오버로딩

생성자의 이름이 같으면서 매개변수의 자료형, 갯수, 순서 중 하나 이상이 다른 경우, 메소드 오버로딩과 동일

패키지

  • 폴더 역할에 해당, .을 이용해서 상위 패키지와 하위 패키지를 구분
  • 클래스명이 같아도 패키지명이 다르면 다른 클래스에 해당
  • 코드의 가장 첫 줄에 선언
  • import 패키지1.패키지2.패키지3.클래스명; 의 형태로 불러온다
  • import로 불러오지 않는다면 패키지명.클래스명 처럼 패키지명을 명시해주어야 함

패키지 명명 규칙

  • 숫자로 시작 불가, _와 $ 외의 특수문자 사용 불가
  • 관례적으로 영문 소문자로 작성하며, 회사에선 회사 도메인으로 많이 사용한다
  • java로 시작하는 패키지명은 JAVA 기본 API에서 사용하고 있어서 불가능

클래스 초기화 블럭(static 초기화 블럭)

  • 클래스가 메모리에 저장되는 시점에 한 번만 실행, 한 번 저장되면 다시 저장할 필요가 없기 때문
  • 클래스 변수를 초기화할 때 종종 사용된다
  • 예시
static {

System.out.println("클래스 초기화 블럭");

}

인스턴스 초기화 블럭

  • 클래스 내에 중괄호 블럭으로만 선언
  • 클래스를 객체로 초기화할 때 실행되는 블럭
  • 객체를 생성할 때마다 실행
  • 초기화 블럭은 생성자보다 먼저 실행된다
  • 생성자와 용도 차이가 없다, 따라서 자주 사용되지 않음
  • 예시
{

System.out.println("인스턴스 초기화 블럭");

}

접근제한자

  • 필드와 메소드의 보안을 위해 접근을 제한하기 위한 수식자
  • JAVA는 메인 메소드가 있는 클래스는 하나이고, 그 외 클래스는 다른 곳에서 사용되기 위해 만들어졌다,
    따라서 클래스 설계 시 여러 곳에서 사용할 수 있게 하거나 지정한 곳에서만 사용할 수 있도록 설계하여야 함
  • public > protected > default > private

public

모든 클래스,상속 관계, 동일 패키지 및 클래스에서 접근 가능

protected

같은 폴더 내 접근 가능, 상속 관계, 동일 패키지 및 클래스에서 접근 가능

default

같은 폴더 내 접근 가능, 동일 패키지 및 클래스에서 접근 가능

private

자신이 속한 동일 클래스 내에서만 접근 가능

접근 제한자를 사용하는 곳

클래스, 메소드,생성자, 변수

  • set메소드에 필드 제약조건(if문을 이용)을 지정할 수 있다
  • 정보은닉은 객체지향프로그래밍의 특징 중 하나

디자인 패턴이란?

객체를 생성하는 방법을 별도로 정의하여 패턴화한 것

싱글톤

  • private 접근 제한자를 사용하여 하나의 객체만 생성되도록 하는 기법
  • 하나의 객체만 생성 후 이를 사용한다
  • 객체가 많이 생성되면 메모리 부족과 시스템 속도 저하 문제가 생김, 이를 방지하기 위함

싱글톤 사용 방법

필드; 모든 객체에 공유하기 위해 static 키워드 사용

private static 클래스명 변수명 = new 생성자();

생성자; 다른 클래스에서 new 키워드로 객체를 생성할 수 없게 하기 위해 private 적용

private 클래스명() {
...
}

메소드; getter 메소드 역할

public static 클래스명 getInstance() {
return 필드명;
}
  • new로 생성하는 것이 아니라 클래스명.getInstance() 의 결과를 변수에 대입해서 사용한다

배열

  • 위치 정보 참조 자료형으로, 초기화하지 않은 상태에선 사용이 불가능하다
  • null 값으로 초기화 가능
  • 값이 담겨져 있는 순서
  • 선언 후 길이 변경 불가

배열 선언

(1) 자료형[] 변수명
(2) 자료형 변수명[]

ArrayList

  • 자바의 클래스, 다양한 자료형의 값 저장 가능
  • 값 추가는 add()로, 값 접근은 get() 메소드를 이용해서 수행
  • ArrayList 변수명 = new ArrayList(); 의 형태로 생성
  • 객체를 넣은 경우, Object로 저장되기 때문에 객체를 사용하려면 반드시 형변환을 해주어야 함

배열 복사

(1) System.arrayCopy(원본 배열, 인덱스 시작 위치 ,복사본을 넣을 배열, 인덱스 시작 위치 ,배열 크기)
(2) Arrays.copyOf(원본 배열, 배열 크기)

향상된 for 문

for(자료형 변수명 : 배열)

좋은 웹페이지 즐겨찾기