[kosta] JAVA 6일차

cokesh·2022년 4월 25일
1

kosta

목록 보기
4/9
post-thumbnail

클래스

클래스란 설계도라고 이해하는 것이 편하다. 설계도는 어떠한 규칙에 따랄서 그린 도면을 말한다.
따라서 소프트웨어의 세계에서는 클래스가 설계도이다.

클래스를 통하여 만들어진(new 연산자)를 인스턴스라고 한다.
new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다.
클래스의 변수를 클래스 변수라고 하고 인스턴스의 변수를 인스턴스변수라고 한다.

클래스의 변수를 static한 값으로 생성한다면 실행클래스에서 클래스변수에 값을 할당가능함

클래스 변수를 사용하는 이유는?
인스턴스에 따라서 변하지 않는 값이 필요한 경우(final을 쓰면 더 좋음)
인스턴스를 생성할 필요가 없는 값을 클래스에 저장하고 싶은 경우
값의 변경사항을 모든 인스턴스가 공유해야 하는 경우

메소드에 static을 붙이면 클래스에 직접 접근하여 사용가능

인스턴스 메소드는 클래스멤버에 접근할 수 있다.
클래스 메소드는 인스턴스 멤버에 접근할 수 있다.

인스턴스 변수 -> Non Static Field
클래스 변수 -> Static Field
(필드라는 것은 클래스 전역에서 접근할 수 있는 변수를 의미함.)

생성자

리턴타입이 없으며 클래스이름과 동일함.
클래스에 명시적 선언한 생성자가 한개라도 있으면 컴파일러는 기본 생성자를 추가시킴.
명시적으로 생성자를 선언하는 이유는 객체를 다양하게 초기화하기위해서이다.

메소드 오버로딩

한 클래스 내에 같은 이름의 메소드를 여러개 선언하는것.
오버로딩의 조건은 매개변수의 타입, 개수, 순서 중 하나가 달라야 함.
오버로딩을 하는 결정적 이유는 "같은 목적의 기능을 만들기 위해서"

javadoc을 이클립스에서 하는법
나중에 프로젝트할 때 설명을 잘 해놓으면 좋다.(남들이 내코드를 더 잘 알아보게 하기 위해)
.java 파일을 우클릭 - export - next - next -next - 만약 한글이 포함되어 있으면 vm options에 다음과 같이 입력함.

-locale ko_KR -encoding UTF-8 -charset UTF-8 -docencoding UTF-8

더 정확하고 알기 쉽게 설명서를 작성해야 한다!

static

정적멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말함.
static은 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스 별로 관리된다. -> 클래스의 로딩이 끝나면 바로 사용가능함.

객체마다 가지고 있는 필요성이 없는 공용적인 데이터라묜 정적필드로 선언하는 것이 좋다.
ex) 원의 넓이나 둘레를 구할 때 필요한 파이는 객체마다 가지고 있을 필요가 없는 변하지 않는 공용적인 데이터이므로 정적필드로 선언.
클래스가 메모리로 로딩되면 정적멤버를 바로 사용가능

profile
개발 공부로그~

0개의 댓글