[학습 목표]
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.java를 com.test.Test.java로 패키지에 넣어서 컴파일 실행하기
step 01 :
package com.test;
public class Test{}
package com.test;
public class Test{}
step 02 : 현재 디렉토리에 있는 Test.java를 com.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만 선언할 수 있음을 알 수 있다.
'🦁멋쟁이 사자처럼 15기 > 2월달 수업 내용 정리' 카테고리의 다른 글
멋쟁이 사자처럼 3회차 ( 02 / 28 ) (0) | 2025.03.04 |
---|---|
멋쟁이 사자처럼 1회차 ( 2 / 26 ) (0) | 2025.02.27 |