on
20210929
20210929
- src 폴더에 소스코드가 클래스 파일로 그대로 만들어져 실행되는 것 : default package(But, Web programming에서는 사용 불가!)
- 현재는 JAVA 에서 Web Programminmg을 할때 기본 패키지의 객체를 인식하지 못함 >> 패키지화 필요!(패키지 키워드를 선언)
cf) Source Folder - 기본 폴더와는 다르게 소스코드를 만들게 되면 컴파일이 가능한 폴더(일반 폴더에서는 컴파일이 되지 않음)
- 관련있는 객체들끼리 묶어 패키지화 해주는 것이 일반적임.
- 패키지 키워드는 첫줄이 아닌 다른줄에서 선언될 경우, 컴파일 에러가 난다.
- 패키지화를 사용하면서 컴파일을 할 때는 '-d'를 컴파일 시 함께 선언해야 한다.(cmd에서)
ex) C:\test>javac -d . Test.java
- 배포 : 클래스 파일을 실제 사용되는 web에 올리는 과정
※ 프로그램에 너무 의존하지 말고 직접 소스코드를 만드는 법도 숙지하고 있자!
# 선언부(portotype)
제어자 위치
(ex) 접근제한자) class class 클래스이름 변수 type 변수이름 메소드 리턴타입 메소드 이름
- 접근 제한자 : private, (default), protected, public
- 하나의 소스파일에 여러개의 class가 들어가도 구동되는데 아무 지장이 없다.
- 파일 이름은 main class가 있으면 그 class의 이름으로, 없다면 아무 class나 선택하여 제어자로 public을 선언하고 그 class 명으로 파일을 저장한다.
- 다른 위치(패키지)에 있는 객체를 가져올 때, "import" 사용 ex)improt 가져오는패키지이름;
- import의 선언 위치는 현 패키지 선언 바로 아래에 옴.
cf) import 지정 시, 지정 디렉토리 이하 소스코드를 모두 활용하고 싶으면 /지정디렉토리명.*;/을 활용한다.
(but, * 표시에서 하위 폴더는 제외된다. 현업에서는 최대한 메모리와 실행속도를 빠르고 작고 가볍게 해야 하기 때문에 코딩시 * 사용은 최대한 자제하는 것이 좋다.)
멤버 변수 지역 변수 new에 생성
참조 데이터가 없어지면 삭제
heap 데이터
자동 초기화(null, 0 값) 메소드 안에서 선언 시 생성
메소드 종료 시 삭제
stack 데이터
초기화 선언 필요
- 캡슐화 : 데이터의 수정, 조건 선언 등을 위해 외부에서의 접근을 차단하고, class 내부에서만 접근이 가능하게끔 하는 'private' 접근 제한자를 사용하는 것을 뜻한다.
- 명령문을 묶어놓은 묶음 = 메소드
→함수 사용을 편리하게 하기 위해서 사용 ex)메소드이름(인자);
→ 메소드 실행 = 메소드 호출
- stack 데이터에서 메모리 값이 사라진다는 것은 그 메소드의 실행이 종료된다는 것을 의미한다.
- 메소드 안에서 선언된 변수는 무조건적으로 지역변수다.
- 의미상 매개변수는 형식상 지역변수로 분류된다.
- 하나의 메소드 영역 : Frame
- 같은 Stack이라 하더라도 다른 frame에 있는 데이터는 찾지 못한다.(지역 변수의 한계) frame 안에서 변수를 찾지 못할 경우, 멤버 변수에서 찾아 사용하게 된다.(this의 개념 대입시 이해 가능.)
- 선언 및 초기화에 해당되는 것은 메소드 실행에 있어 무관하지만, 새로운 명령문이 선언에 해당되는 메소드에 포함된다면 컴파일 에러가 발생하게 된다.
- 메소드를 선언할 때 인자값의 갯수가 달라지면, 변수의 이름은 통일해도 되나, 인자값의 갯수가 다른 메소드를 따로 선언 해주어야 한다. 변수의 타입에 한해서도 동일하게 적용된다. → method overloading의 개념(메소드 이름과 타입만 중복되지 않으면 어떻게 겹치더라도 문제가 발생하지 않는다. ex) add_int_int, add_double_double)
- 가변길이 인자 지원(JDK 1.5 버전부터 사용 가능)
- 고정 인수와 가변 인수를 동시에 사용하고 싶을때는 고정인수를 앞에 배치하여야 한다.(ex) public void info(String name, int... score);
getter 메소드 private 데이터를 읽어주는 변수 setter 메소드 private 데이터를 수정할 수 있게 해주는 변수
- Heap data 안에 있는 멤버 변수나 베소드를 지칭하고 싶을 때 This 변수를 사용한다.
# This - 현재 작업중인 인스턴스의 주소값을 가리키는 변수
<직접적인 실습과정>
멤버변수 지역변수의 구분&리턴값ㅋ 멤버변수와 지역변수의 구분 2 멤버변수와 지역변수의 구분 3 this 제어문 사용 예시 변수 선언 캡슐화, getter&setter; 구문, 의미있는 변수이름 구동 this의 개념
from http://milktea-developer.tistory.com/10 by ccl(A) rewrite - 2021-09-30 07:02:10