ssung_항해일지/항해99_언어학습(Java)

Java : 설 연휴 복습 - 3일차

ssungcohol 2023. 1. 24. 00:31

2차원 배열

2차원 배열의 선언과 생성

  • int [][] score = net int [4][3];  :  4행 3열의 2차원 배열 생성
    score [0][0] = 88;  : 1행 1열에 88을 저장한다

2차원 배열의 초기화

  • int [][] score = new int [][] {{}, {}, {}, {}};
  • int [][] score = {{}, {}, {}, {}};

향상된 for 문 : 사용할 변수는 지역변수로 인식, 대상은 배열 or 여러 원소를 포함한 자료형 이어야한다.

  • 배열처럼 여러 원소로 이루어진 상황에서 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용
  • 장점 : 간편하고 가독성 좋고, 배열 인덱스 문제를 해결
  • 단점 : 인덱스를 사용하지 못함 (for 문의 int i = 0;), 배열이나 ArrayList 값을 사용가능하지만 절대 수정할 수는 없다.
for (자료형 변수명 : 배열명) {
	문장
}

============================================================================================

 

객체지향

 

클래스

  • 정의 : 객체를 정의해 놓은 것
  • 용도 : 객체를 생성하는데 사용

객체

  • 정의 : 실재로 존재하는 것, 사물 또는 개념
  • 용도 : 객체가 가지고 있는 속성과 기능에 따라 다름
  • 구성요소 : 속성(변수) + 기능(메서드)

객체와 인스턴스의 용어 정리

  • 객체 : 모든 인스턴스를 대표하는 일반적인 용어
  • 인스턴스 : 특정 클래스로부터 생성된 객체
  • 인스턴스화 : 클래스 => 인스턴스(객체)

객체의 생성과 배열

 

객체의 생성

  • 클래스명 변수명;
     - Tv t;  =>  Tv 클래스 타입의 참조변수 t를 선언
  • 변수명 = new 클래스명;
     - t = new Tv();  =>  Tv 인스턴스를 생성한 후 생성된 Tv인스턴스의 주소를 t에 저장

객체 배열

  • 객체 배열 == 참조변수 배열
     - Tv [] tvArr = new Tv [3]  => 여러 개의 객체를 담을 수 있는 배열

클래스 : 클래스 == 데이터 + 함수

 

클래스의 탄생과정

  • 변수 : 하나의 데이터를 저장할 수 있는 공간
  • 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
  • 구조체 : 서로 연관된 데이터를 (종류관계 X) 하나로 저장할 수 있는 공간
  • 클래스 : 데이터와 함수의 결합 (구조체 + 함수)

클래스 == 사용자 정의 타입

  • 원하는 타입을 직접 만들 수 있다.
     - 시간을 다루는 타입을 직접 만들고 싶다? => 기본형 8개가 아닌 새로운 타입의 시간 클래스를 작성해라

메서드

반환타입 메서드이름 (타입 변수명, 타입 변수명,....) //(선언부)
{
	//메서드가 호출되면 수행할 코드(구현부)
}

메서드의 장점과 작성

  • 장점
     - 중복 코드 제거
     - 관리 용이
     - 재사용 가능
  • 작성
     - 반복적으로 수행되는 여러 문장을 메서드로 작성
     - 하나의 메서드는 한 가지 기능만 수행하도록 작성하는 것이 좋다

함수 : 값을 입력 받아서 처리하고, 결과를 반환한다.

int add (int x, int y) {
=> int(반환타입) add(메서드 이름) int x, int y(매개변수(입력)) 
	int result = x + y;  => 처리
    return result;  => 결과반환
}
void(반환타입) // 메서드 수행 시 아무것도 반환하지 않았을 때 사용

 

메서드 호출 : 메서드이름(값1, 값2, ...);

 

return : 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다

  • 반환타입이 void가 아닌 경우, 반드시 return 문이 필요
  • void는 컴파일러가 자동으로 메서드 마지막에 return; 을 추가해준다.

호출스택 (call stack)

  • 메서드 수행에 필요한 메모리가 제공되는 공간
  • 메서드가 호출되면 호출 스택에 메모리 할당, 종료되면 해제

static 메서드 (클래스 메서드)

  • 객체 생성 없이 '클래스 이름. 매서드이름()' 으로 호출
  • 인스턴스 멤버 (인스턴스 변수, 인스턴스 메서드)와 관련없는 작업을 하는 메서드
  • 메서드 내에서 인스턴스 메서드 사용 불가

인스턴스 메서드

  • 인스턴스를 생성한 후 , '참조변수. 메서드 이름()' 으로 호출
  • 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)와 관련된 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수 사용가능
728x90

'ssung_항해일지 > 항해99_언어학습(Java)' 카테고리의 다른 글

Java - 4일차  (0) 2023.01.26
Java : 설 연휴 복습 - 마지막  (0) 2023.01.25
Java : 설 연휴 복습 - 2일차  (0) 2023.01.23
Java : 설 연휴 복습 - 1일차  (1) 2023.01.22
Java - 3일차  (0) 2023.01.21