2. 클래스 구성 요소
- 변수 기타 제한자 static(17)
클래스(static) 변수라고 한다.
C에서 전역변수 개념과 비슷하다.
인스턴스 변수는 각 객체마다 공유의 개념이 아니고 각각의 데이터이지만
클래스 변수는 어떠한 객체를 생성하든 공유된다.
-JVM 메모리 관리 모델
[ static영역 ][stack영역][ haep영역 ]
heap > static > stack 순으로 크다
1. 클래스를 선언하는순간 static영역 메모리에 로드가된다.
2. 변수가 스택영역에 할당된다.
3. new 하는순간 static에 선언된 클래스가 heap에 로드된다.
클래스 자체가 로드되는곳(클래스로더, static영역)
스텍 영역은 지역변수가 로드되는 영역이다.
힙 영역은 인스턴스가 할당되는 영역이다.
스택은 지역변수만 넣기때문에 작다.
클래스 변수는 static 영역에 로드된다.
기존의 인스턴스 변수는 heap영역에 로드된다.
heap영역에는 클래스변수가 로드되지 않는다. 오직 static 에만 로드된다.
할당될떄 "클래스이름.클래스변수" 로 할당된다.
다른 모든 인스턴스들과 공유되는 변수, 메소드 이다.
- math 클래스는 100% static 메소드로 되어있다.
- 상수 처리의 일반적인 구조
public final static int value = 10;
변수명은 대문자로 써준다. 일반적으로
- 패키지 생성 방법(시험문제)
javac -d . SomeClass.java
javac 디렉토리생성 명령어 좌표 파일명
패키지명은 소문자 클래스 명의 시작은 대문자로 쓴다. 구분하기 위해
- 서로 다른 package의 클래스를 사용하기 위해 import를 쓴다.
실제 패키지명은 패키지 + 클래스명 으로 구성된다.(컴파일러 단에서)
실행시 반드시 패키지명을 포함시켜야한다.
- 4. 메소드 오버로딩
동일한 이름으로 사용가능 <-- 장점조건 : 매게변수의 개수나 데이터유형이 서로 달라야한다.
리턴타입은 오버로딩과 관계없다.
오로지 매개변수 타입과 갯수에만 관계가있다.
- 5. 배열.ppt
동일한 타입이 다수 들어간것
배열 자체를 메소드로 취급한다.
배열을 하나의 클래스처럼 취급한다.
한방에 선언, 생성, 초기화할때
int[] array = new int[]{0,~~}
사이즈 크기를 주지않는다.
자바는 정방향 배열이 아니다.
참조의 참조 객체로 사용한다.
C와 내부적인 구조가 다르다.
2차원 배열을 for문으로 돌릴때
for (int i = 0; i < array3.length ; i++){
for (int j = 0; j < array3[i].length ; j++){
array3[i].lenght 은 [i]가 가지고있는 배열의 크기
------------------
자바 배열 퀴즈
순서가 엉망인 1~10까지 배열을 가지고
순서대로 만들기
버블정렬로 구현하기
메소드에 래퍼런스를 넘길경우 굳이 그 메소드에서
리턴으로 값울 다시 가져올필요가없다
왜냐하면 래퍼런스로 메소드나 호출하는 부분에서도 래퍼런스가 가리키는
데이터의 위치는 같기때문이다.
- 참조 데이터 타입을 배열로 처리할 수 있다.
5, 배열(3)
'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글
7월 2주차 2일 (2주) (0) | 2015.07.14 |
---|---|
7월 2주차 1일 (2주) (0) | 2015.07.14 |
7월 1주차 4일 (1주) (0) | 2015.07.09 |
7월 1주차 3일 (1주) (0) | 2015.07.08 |
7월 1주 2일차 (1주) (0) | 2015.07.07 |