eterno

JAVA공부 3. JAVA구성원(식별자, 예약어, 자원) / 클래스와 패키지 본문

JAVA/강의노트

JAVA공부 3. JAVA구성원(식별자, 예약어, 자원) / 클래스와 패키지

영원한별똥별 2022. 8. 9. 11:00
728x90
반응형

자바 입문

https://opentutorials.org/course/3930 여기서 기초 익히기(언어-생활코딩 자바 입문수업)


<자바 컴파일과정>

 
 

* JAVA소스를 JUM이 알아 들을 수 있게 번역하고 이것을 CPU에 결과를 냄


<자바 개발도구>

  • jdk(Java Development Kit) : 개발할 때 사용
    - jdk
        javac.exe : 컴파일러
            자바소스를 자바규칙에 맞는지 검사
            검사가 완료되면 *.class 클래스코드(byte code)를 생성함
        java.exe : 실행엔진
            (=자바가상버신 = JVM(Java Virtual Machaine) )
         *.class 클래스코드를 컴퓨터 cpu와 통신해서 원하는 결과를 만듦
     - jre
         java.exe 실행파일 
  • jre(Java Runtime Enviroment) : 배포할 때 사용

<자바의 구성원>

자바의 최소단위 : class

class의 최대 단위 : package

 

1. 식별자(identifier)

 : 클래스 이름 / 함수 이름 / 변수 이름

* 식별자는 내가 맘대로 바꿀 수 있다.

* 식별자에서 합성어를 쓸 때는 이니셜 대문자, 클래스 앞에 대문자, 변수는 소문자로 써야한다.

* 명령규칙(naming convienction) 을 지키지 않으면 위배됨

 

2. 예약어(keyword)

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 에서 확인가능

* 키워드에 있는 단어는 식별자로 사용할 수 없다.

 

 - 연산자(operator)

   : +, -, = 같은 특수기호

     https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html 에서 확인 가능

 

3 .자원(resource)

 : 클래스들의 모음집

   API(Application Programming Interface)라고도 함

   https://docs.oracle.com/javase/8/docs/api/index.html 에서 확인 가능

 

java.lang.*

java.util.*

java.io.*

java.sql.*

 

자바설치파일 중 rt.jar 폴더에 있는게 자원임

( C:\Program Files\Java\jdk1.8.0_202\jre\lib\rt.jar )

-> 컴파일할 때 rt.jar를 갖고와서 검사함

 

자바에서 유일하게 내가 만들어서 사용하는 것 : 식별자

새로 만드는 것이 아니라 있는 거 사용하는 것 : 예약어, 자원

* 키워드와 자원은 똑같이 써야함(다른 문구로 변경할 수 없음)

 


 

C:\Program Files\Java\jdk1.8.0_202\jre\lib\rt.jar 압출풀기

C:\Program Files\Java\jdk1.8.0_202\src.jar 압출풀기

 

java.lang.String 클래스찾기

String 클래스 : C:\Program Files\Java\jdk1.8.0_202\jre\lib\rt\java\lang\String.class

String 자바소스 : C:\Program Files\Java\jdk1.8.0_202\src\java\lang\String.java

String 클래스 api : https://docs.oracle.com/javase/8/docs/api/index.html -> java.lang.String

 

위의 세 파일이 같은 정보임


<자바 구성원 최소 단위>

클래스 = [변수] + [함수   // [ ]는 생략가능하다는 뜻

 * 클래스를 바이트코드 라고도 함

ex) 필통 = 클래스 , 연필 =함수, 변수

*.java

*.class

 

클래스 선언하기

public class A : A라고 정의하는 사용자 정의 클래스

* public : 다른패키지의 클래스를 불러올 때 사용(접근제한키워드)

1. 하나의 자바 파일 내부에는 클래스가 1개 또는 여러개가 존재할 수 있다.

ex)

Hello_2.java

public class Hello_2.java{

}

class Hello_1 {

}

 

C:\> javac Hello_2.java

javac : javac 명령어 선언하여 class 생성

Hello_2.java : 컴파일할 자바소스를 자바파일 이름 및 확장자를 써서 선언

 

2. 자바 클래스는 패키지 단위로 관리를 한다.

- 패키지는 디렉토리 모양과 동일

- 패키지 구분자는 . (dot) 연산자를 사용

- 패키지는 영문자 소문자로 작성

- 패키지는 도메인 역순으로 작성(전세계에서 유니크해야함)

 

디렉토리 구분자 : \

패키지 구분자 : . (dot 연산자)

=> ex) string 의 경로 : rt.jar \ java . lang . string

 


<패키지를 만드는 방법>

맨위에 패키지 선언

package a.b.c.com;

public class HelloPackage{

}

 

<패키지 컴파일하기>

javac -d . HelloPackage.java

1. javac : 컴파일 명령어

2. -d : 디렉토리를 만들어서 그 위치에 클래스파일을 만드세요.

3. . (dot연산자) : 현재폴더(디렉토리)로부터 패키지를 만드세요.

     => C:\00.KOSMO120\10.JExam를 의미함

4. HelloPackage.java : 자바소스파일

패키지 컴파일한 HelloPackage 자바소스의 클래스 이름은 HelloPackage.class 가 아니고

    a.b.c.com.HelloPackage.class 이다.

패키지는 컴파일하면 패키지폴더가 생성됨

(a > b > c > com 안에 HelloPackage 패키지 생성)

 

javac HelloPackage.java

패키지명을 쓰지 않아도 컴파일은 되지만 영원히 실행되지 않는 컴파일이다.

 

javap : 역컴파일

3. 네임스페이스

패키지 컴파일한 자바소스의 클래스 이름 = 패키지명+클래스이름 으로 구성되고

이를 네임스페이스(NameSpace) 라고 한다.

  - 네임스페이는 전세계에서 유니크한 개체이름이다.

  • 일반컴파일
    java 자바소스파일  // ex) javac Hello.java
    java 클래스이름     // ex) java Hello
  •  패키지 컴파일
    javac d . 자바소스파일  // ex)  javac -d . Hello.java
    java 패키지명.클래스이름 // ex)  java a.b.c.com.Hello

<자바 개발시 필요한 프로그램>

1. JDK 1.8

2. 편집기 EDIT+

3. MS DOS(CONSOLE)

4. API

=> IDE4가지를 한꺼번에 처리 가능

 

IDE(통합 개발 환경)

- eclipse(비상업) / IntelliJ(상업) 등등

출처. 위키백과

 

728x90
반응형