자바에 대해 기억할 것

이현준·2020년 10월 1일
0

Java

목록 보기
4/15

줄바꿈

Ctrl + Shift + F

들여쓰기 수정

WIN(Ctrl+I), MAC(Command+I): 들여쓰기 수정

멤버 변수와 초깃값

public class Student{
private int year; //시작값 유동변수 - 학년
(학년은 신입생과 편입생에 따라 1또는 3으로 초기화되어야 함)

public final int ENTRANCEYEAR; //객체 상수 - 입학년도
(입학년도는 학생마다 다르지만 변하지 않음)

privatea int currentCredit = 0; //시작값 고정 변수 - 이수학점
(지금까지 이수한 학점은 학생과 상관없이 0으로 초기화됨)

public static final int TOTALMINCREDIT = 150; //공통 상수 - 졸업최소이수학점
(졸업 최소 이수학점은 150학점으로 모든 학생마다 동일하며, 상수임)
private static int numberOfStudents = 0; //공통 변수 -
내가 만든 학생의 수를 알고 싶을때 이렇게 사용

pulbic Student(int year, int entraceYear){
this.year = year;
ENTRANCEYEAR = entraceYear;
} // Student(int, int)
} //Student

  • 시작값 유동변수와 객체 상수는 생성자에서 초기화 된다.
  • 시작값 고정 변수, 공통 상수, 공통 변수는 명백한 초기화 또는 초기화 블록을 사용한다.

초기화 원칙

일반 멤버 변수

  • 객체마다 다른 값으로 초기화되어야 하는 경우에는 생성자에서 초기화함
    • 초기화된 이후 고정되면 final 멤버 변수로 선언하고 생성자에서 초기화함
  • 모든 객체마다 동일한 값으로 초기화되는 경우에는 명백한 초기화 또는 초기화 블록을 사용함
  • 모든 객체마다 동일한 값으로 초기화된 이후 고정되면 클래스 상수 변수로 선언하고 명백한 초기화를 사용함

static 멤버변수

  • 명백한 초기화 또는 초기화 블록을 사용함, static 초기화 블록을 사용할 수 있음

자바는 데이터 타입이 딱 2종류만 있다.

1. 값타입 - 원시타입

2. 참조 타입 - 그 외 나머지

자바는 무조건 값 전달 방식(call-by-value)으로 전달

원시타입에서는 (그래서 다른 함수에서 절대 다른 곳의 값을 바꿀 수 없음 한 함수의 스택에 있는건 다른 함수에서 절대 바꿀 수 없어)

다만 참조타입에서는 객체를 참조하는 값(리모컨 같은)이 전달됨으로 다른 곳에서 바꾸면 해당 변화가 해당 값에 남게된다.

자바에서는 무거운 것을 반환하는 경우가 없음 => 원시타입 아니면 참조타입 = 주소만,리모컨만 반환하는거다

리모컨과 객체

Pet p = new Dog();
<- 리모컨
-> 객체
Pet 타입의 리모컨으로 Dog 객체를 다룬다.

0개의 댓글