🦁멋쟁이 사자처럼 15기/2월달 수업 내용 정리

멋쟁이 사자처럼 2회차 ( 2 / 27 )

코딩하는 하마 2025. 3. 3. 23:41

 

 

[학습 목표]

1. IDE 를 활용해서 프로젝트 생성 및 구조를 이해할 수 있다. 


2. 클래스 단위 및 메소드 구현 실행을 할 수 있다


3. API를 이용해서 클래스의 메소드를 호출하는 실행을 숙지할 수 있다.


4. 자바 파일을 생성하고 컴파일 할 수 있다.
- 식별자 규칙을 활용해서 파일의 클래스 생성 및 저장 후 컴파일 할 수 있다.
- 여러 개의 클래스를 단일 클래스, 중첩 클래스를 만들어서 컴파일 후 생성되는 클래스를 확인
할 수 있다.

 

 


 

 

1. IDE를 활용해서 프로젝트 생성 및 구조 이해하기 

Java Documentation : https://docs.oracle.com/javase/8/docs/index.html

 

Java Platform Standard Edition 8 Documentation

<!-- commenting out JDK 7-specific links; will replace with corresponding JDK 8 links as we get closer What's New in Documentation This section will contain information about new features in the Java platform. -->

docs.oracle.com

 

Java  SE 8 API : https://docs.oracle.com/javase/8/

 

위 링크를 참고하면 JAVA API 사용을 알 수 있다. 

 


 

2. 클래스 단위 및 메소드 구현 실행해보기 

 

1) powershell을 이용하여 java 코드 파일 실행시켜보기 

 

    a. 메모장에 아래 코드를 적은 후 저장한다. 

//EX 01 
//파일명 : Test.java 
public class Test {}

 

 

  b. powershell을 킨 뒤 아래와 같이 코드를 입력한다. 

> javac Test.java

 

      이를 실행하게 되면 dir이라는 명령어로 디렉토리 목록을 조회했을 떄 Test.class가 생성되었음을 확인 할 수 있다.

      여기서 class는 실행 파일이다. 

      자바의 실행 단위는 class임에 유의하길 바란다.

      javac : 컴파일러      ( 내가 쓴 코드 -> 컴퓨터 언어 ) 

 

 

   c. powershell에 아래와 같은 코드를 입력하여 코드를 실행시켜본다.

> java Test.class

 

       위 코드를 실행하게 되면 내가 쓴 코드의 값이 나온다 .

       아래는 위 결과를 거쳐 실행한 결과이다. 

 

       C:\mywork\Test>javac Test.java

       C:\mywork\Test>java Test

       Error: Main method not found in class Test, please define the main method as:

       public static void main(String[] args)

       or a JavaFX application class must extend javafx.application.Application

 

       에러가 난 것을 볼 수 있다. 

       -> main 메소드가 필요한 것을 볼 수 있다. main 은 프로그램의 진입점인데 내가 쓴 코드에는 main 메소드가 없어 에               러  가 발생한 것이다. 

 

 

   전체적인 과정을 정리해 보겠다.    파일명.java  ->  javac 파일명.java  ->  파일명.class  ->  java 파일명 

 

 

 

 

 

2) 접근 제한자 

    - public : 전부 다 공개 

    - protected : 상속 시 우리끼리 ( 메소드 기능을 자식에게 줌 ) 

    - default : 같은 패키지 않에서만 호출 가능    ->  자바에서는 클래스 호출 시 접근 제한자가 없을 경우 default로 간주 !

    - private : 비공개 

 

 

 

 

 

3) 파일 작성 및 저장하는 법 

 

    [ 파일 작성하는 법 ]

    접근 제한자 clas UserName { 코드 작성하는 곳 }

    

    [조건]

    - a. 하나의 파일의 여러 개의 클래스를 선언할 수 있다

class x{} 
class y{}
class z{}

 

     저장 파일 : x.java    

     만들어진 클래스 : x.class, y.class , z.class

 

 

    실행 한 코드 및 실행 결과 

   

 

 

- b. , 접근제한자 public 클래스는 하나의 파일에 하나만 선언한 후 public 클래스 이름으로 저장

class x{} 
class y{}
public class z{}

 

      저장 파일 : z.java

      만들어진 클래스 : z.class, x.class , y.class

 

 

 - c. 클래스 안에 클래스를 중첩으로 사용할 수 있다.

class x1 {
				class y1{} 
}
class x2 {
   class y2 {} 
 }

 

 

 

       저장 파일 :  x1.java

       만들어진 클래스 : x1.class , x1$y1.class , x2.class , x2$y2.class

 

 

[ + 추가 실습 ]

Test.javacom.test.Test.java로 패키지에 넣어서 컴파일 실행하기

 

step 01 :

    package com.test;

    public class Test{}

 package com.test;
 public class Test{}

 

 

step 02 : 현재 디렉토리에 있는 Test.javacom.test하위로 이동

 

>  mv Test.java com\test\

 

 

step 03 : 컴파일 하기

> javac –d . com\test\Test.java

 

step 04 : 실행하기

> java com.test.Test

 


 

3. 자바 실행 환경을 이용해서 실행해보기 

1) 클래스 생성

 

/*
접근 제한자 [public , protected , default , private ] class UserName {
    명령 코드 
}
*/
class HelloWorld {
    public static void main(String[] args) //프로그램 진입점 메인 메소드 HelloWorld.main() 
    {
    	System.out.println("Hello Wolrd!"); //현재 시스템 표준 출력 장치 줄바꿈 포함 프린트("문자열")
    }
}

 

클래스명 :  HelloWorld

------------------------------- 

필드 (변수)

-------------------------------

메소드 : main(String[] args) 

 

위 코드는 이러한 구조로 되어있음을 확인 할 수 있다. 

 

 

2) 클래스 생성 시 이름 규칙

- 영문자, 숫자 , _ , $ 로만 이름을 짓는다. 

- 대소문자 구분한다.

- 공백이 없어야 한다. 

- 숫자로 시작하면 안된다. 

- 예약어는 불가하다. 

 

 

3) 이름의 종류

- 프로젝트

- 모듈 

- 패키지 

- 클래스 = 필드 (변수) + 메소드 

   -> 클래스명 : 파스칼 표기법 ( 첫 글자 대문자 )

   -> 메소드명 : 카멜 표기법 ( 첫 글자 소문자 ) 

   -> 변수명 : 카멜 표기법 

   -> 상수명 ( static field ) : 대문자 + 언더스코어                 

        ex) public static final double PI 

              - final : 절대 변경할 수 없다 

              - static : 고정된 , 고용데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 떄 이용된다.

 

 


 

 

[실습 퀴즈]

ex 01) MyExam 폴더를 생성한다. My.class를 생성한다.

 

step 1 ) 

> mkdir MyExam

위 명령어를 실행하게 되면 아래와 같은 MyExam이라는 파일이 생겼음을 알 수 있다. 

 

 

step 2) 

메모장에 My 클래스를 작성한 뒤 My.java라는 이름으로 저장해준다.

 

 

step 3) 

> javac My.java
> dir

javac를 실행하면 dir 명령어로 목록을 조회했을 떄 위 그림과 같이 My.class가 생성되었음을 볼 수 있다.

 

 

step 4)

> java My

java 명령어를 사용하여 파일을 실행시키면 내가 썼던 코드가 결과로 나옴을 볼 수 있다. 

 

 


 

 

ex02) AA.class AA$BB.class AA$CC.class가 만들어지게 AA.java를 만들어 실행한다  

 

step 1)

위 사진과 같이 메모장에 코드를 짜준다. 

 

 

step 2) 

> javac AA.java
> dir

위 명령어를 사용해서 AA 실행 파일을 만들어 주고 dir 명령어를 사용하여 목록을 조회해 보면 빨간색 네모로 친 것 처럼 클래스 파일들이 만들어졌음을 볼 수 있다. 

 

step 3) 

> java AA

java 명령어를 사용해서 실행파일을 실행해보면 위와 같은 결과를 얻을 수 있다. 위 에러는 프로그램의 진입점인 main 메소드를 만들지 않아 에러가 발생한 것이다. 

 

 


 

 

ex03) MyExam폴더를 현재 디렉토리로 간주한 후 com.test.MYTest.class를 컴파일 한다.

com.test.MyTest02$AA.class com.test.MyTest02.class 를 컴파일 한다.

 

a, com.test.MyTest.class 컴파일하기

step 1) 

> mkdir .\com\test

mkdir 명령어를 사용하여 현재 위치 밑에 com , com 밑에 test라는 디렉토리를 만들도록 한다. 

 

 

step 2) 

메모장에 MyTest 코드를 작성한다.

 

 

step 3) 

> javac ./com/test/MyTest.java

javac 명령어를 사용하여 실행 파일을 만들어주면 위 사진과 같이 class 파일이 만들어졌음을 볼 수 있다.

 

 

step 4) 

> cd ./com/test/
> java MyTest

현재 위치에서 com -> test 로 위치를 이동시킨 뒤 java를 사용하여 코드를 실행한다. 

 

 

b) com.test.MyTest02$AA.class,  com.test.MyTest02.class 를 컴파일하기 

step 1)

 

메모장에 MyTest02 코드를 적은 뒤 MyTest02.java라는 파일을 만든다. 

 

step 2) 

> java ./com/test/MyTest02.java

위 명령어를 실행하면 위 사진과 같은 실행 파일이 만들어지는 것을 볼 수 있다. 

 

 


 

 

ex04) My.java의 내용을 cmd에서 확인 해본다.

type이라는 명령어는 파일의 내용을 확인 할 수 있다. 

 

 


 

 

ex05) 파일을 모두 삭제 해 본다.

경로 : C:\myWork
> rd /s MyExam

 

 

rd를 사용하여 디렉토리를 지웠다. /s 옵션은 아래 help rd 명령어를 통해 살펴볼 수 있다. 

 

 


 

 

ex 06 ) 클래스 두 개를 public 으로 만들어 저장 후 컴파일 하고 리턴 메세지를 확인한다. 

 

step 1) 

메모장에 T1, T2라는 클래스를 만들어 주는데 둘 다 접근 제한자를 public 으로 설정한다.

 

 

step 2) 

javac를 사용하여 T1.java를 실행하면 위와 같은 에러 메세지를 얻을 수 있다. 

-> 하나의 파일에 하나의 public만 선언할 수 있음을 알 수 있다.