일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MSA
- hamobee
- override
- eclipse
- super
- start()
- constantnumber
- ALTER
- Vector
- fuction
- Hashtable
- Polymorphism
- hashCode
- 콘크리트클래스
- 생성자
- value
- concreteclass
- arguments
- abstractclass
- run()
- string
- class
- Eureka
- object
- garbagecollection
- methodArea
- 객체형변환
- 추상클래스
- reference
- overload
- Today
- Total
뇌운동일지
[JAVA06] class 본문
<클래스>
1. 자바 프로그램의 기본 단위
2. 클래스의 이름과 저장파일명은 동일
3. 하나의 소스에 여러개의 클래스를 정의할 수 있음
4. public이 붙어있는 클래스의 이름으로 저장한다.
5. 컴파일하면 클래스 파일은 각각 생성된다.
6. public 클래스 안에 main 함수를 정의
소스코드를 컴파일하면 클래스가 만들어짐
[A.java] ---compile---> [A.class] ----실행--->
컴파일한다 : 문자코드를 바이트코드로 바꾸어주는 것
소스는 하나인데 클래스를 여러개 정의할 수 있다.
소스의 이름과 클래스의 이름은 동일해야 함.
class A {
class B {
}
}
A.class
A$B.class
-> 클래스 안에 클래스를 정의하는 경우, 내포클래스
클래스는 변수들과 메소드들로 구성되어있다.
변수 -> 저장
함수 -> 처리
public이 붙어있는 class안에 main 함수 정의
class를 사용하려면 instance를 생성해야 한다.
클래스명 객체변수 = new 생성자(): // new는 heap영역에 memory를 할당
객체변수.멤버
멤버는 변수일수도 메서드일수도 있다.
class 안의 모든 요소 : member
반복되는 코드를 한번만 존재하도록, memory에는 한번만 존재 -> method
method는 자기 할일을 다하면 메모리에서 사라짐
<reference의 개념>
Method Area - Class Area
Heap : 주로 데이터를 보관, 잘 안사라짐 -> 오랫동안 보관
Stack : method가 실행할 때 사용하는 영역 -> 짧게 보관
함수 : 한번 처리하면 memory공간에서 바로 사라짐, 사라짐과 나타남을 반복적으로
함수는 스택에서 실행되고, 변수는 힙에 저장된다.
파일을 분류하면 무엇이 좋은가 -> 클래스 단위의 재활용이 쉬워짐
소스가 하나이고, 안에 클래스를 2개 정의 -> 둘 중에 하나에만 public을 붙일 수 있음.
아무것도 붙지 않은 클래스는 동일한 패키지 안에서만 사용할 수 있다.
public은 import해서 사용가능
참조할 수 있는 위치에 있어야 import할 수 있다.
외부 라이브러리를 참조할 수 있는 위치를 지정하여 사용.
-재활용
-은닉화
이용하는 클래스가 처리하는 클래스를 참조하여 사용
처리클래스를 잘 만들어야 간결한 코드를 작성할 수 있다.
1. 왜 파일을 분리하지 않는가? 은닉화
왜 파일을 분리하는가? 공유하여 사용하기 위해
2. 반복되는 코드는 함수화를 시켜라.
클래스 사용시, import -> 인스턴스화 -> member호출
'JAVA' 카테고리의 다른 글
[JAVA02_(2)] 환경변수 설정과 설치확인 (0) | 2020.03.13 |
---|---|
[JAVA02_(1)] JDK, JRE 설치 (0) | 2020.03.13 |
[JAVA05] Arrays (0) | 2020.03.13 |
[JAVA04] 삼항연산자, if문, switch문, for문 (0) | 2020.03.13 |
[JAVA03] Data Type, 연산자 (0) | 2020.03.13 |