OpenFrameWork
오픈프레임워크_Day11
px
2015. 4. 20. 11:17
### : 목차 구분 기호
--- : 목차 내에 항목 구분 기호
목차
1. 이론 및 정보
2. 설정 및 그 밖에
3. 소스코드
4. 과제
###################################
1. 이론 및 정보
-----------------------------------
--- : 목차 내에 항목 구분 기호
목차
1. 이론 및 정보
2. 설정 및 그 밖에
3. 소스코드
4. 과제
###################################
1. 이론 및 정보
-----------------------------------
패키지
1. 묶음 : 클래스
2. 효과
1) 필요한 클래스를 적재 적소에 사용가능
2) 이름 충돌 방지
3. 재료 : 폴더
*.jar
1) 압축할 때 : cvf
2) 압축풀 때 : xvf
패키지 사용법 주의 사항, 원칙
- 모든 패키지 안에 있는 클래스들은 패키지 상위 폴더에서 실행해야 한다.
- 패키지가 달린 클래스는 반드시 패키지까지 포함된 이름이 완전한 이름이다.
-----------------------------------
클래스 패스(Class Path)
내가 원하는 클래스를 아무데서나 실행시킬 수 있도록 하기 위해서 사용!!!
*압축 안할때에는 상위 폴더에 클래스 패스
*압축 했을때에는 압축파일이 있는 위치까지 경로를 잡음
-----------------------------------
protected
어떤 의도로 코드를 짰는지 알 수 있음.
2. Access Modifier(접근 지정자)
1) default(anonymous) : 부분 허용 (같은 폴더 내에 만 접근 가능)
2) public : 완전 허용
3) private : 완전 불가
4) protected : 부분 불가 (다른 패키지에서 접근 불가, 같은 패키지 접근 가능)
1) default(anonymous) : 부분 허용 (같은 폴더 내에 만 접근 가능)
2) public : 완전 허용
3) private : 완전 불가
4) protected : 부분 불가 (다른 패키지에서 접근 불가, 같은 패키지 접근 가능)
-----------------------------------
java.lang은 기본 패키지로
생략 가능!!
필수 클래스만 모아놓음
java.util 은 도움이 많이 되는 클래스가 많다
-----------------------------------
-----------------------------------
toString은 Object가 가지는 걸로 모든 객체가 가지고 있고 사용가능
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
###################################
2. 설정 및 그 밖에
-----------------------------------
C:\Program Files\Java\jdk1.8.0_40\bin\jar.exe 로 압축을 함
이걸로 압축을 하면 압축을 풀지 않아도 됨
-----------------------------------
시스템 변수 새로 추가
이름 : CLASSPATH
이름 : CLASSPATH
변수 : .;F:\study\java\day10
Path에 ;%CLASSPATH% 추가
Path에 ;%CLASSPATH% 추가
하고 Dos창 새로 킨뒤 아무데서나
java BookPack.BookTest
-----------------------------------
기존꺼는 이번 수업을 위해서 쓰고 지움
아래의 시스템 변수를 사용
시스템 변수 새로 추가
이름 : CLASSPATH
변수 : .;%JAVA_HOME%\lib\tools.jar
이름 : CLASSPATH
변수 : .;%JAVA_HOME%\lib\tools.jar
Path에 ;%CLASSPATH% 추가
-----------------------------------
확장자는 상관없음
F:\study\java\day10\BookPack>cd ../
F:\study\java\day10>jar cvf bookpack.jar BookPack
Manifest를 추가함
추가하는 중: BookPack/(입력 = 0) (출력 = 0)(0%를 저장함)
추가하는 중: BookPack/Book.class(입력 = 890) (출력 = 535)(39%를 감소함)
추가하는 중: BookPack/BookTest.class(입력 = 697) (출력 = 532)(23%를 감소함
추가하는 중: BookPack/BookTest.java(입력 = 964) (출력 = 440)(54%를 감소함)
추가하는 중: BookPack/(입력 = 0) (출력 = 0)(0%를 저장함)
추가하는 중: BookPack/Book.class(입력 = 890) (출력 = 535)(39%를 감소함)
추가하는 중: BookPack/BookTest.class(입력 = 697) (출력 = 532)(23%를 감소함
추가하는 중: BookPack/BookTest.java(입력 = 964) (출력 = 440)(54%를 감소함)
BookPack 폴더 지움
*압축 안할때에는 상위 폴더에 클래스 패스
*압축 했을때에는 압축파일이 있는 위치까지 경로를 잡음
시스템 변수 변경
이름 : CLASSPATH
변수 : .;%JAVA_HOME%\lib\tools.jar;F:\study\java\day10\bookpack.jar
추가
이름 : CLASSPATH
변수 : .;%JAVA_HOME%\lib\tools.jar;F:\study\java\day10\bookpack.jar
추가
-----------------------------------
C:\Program Files\Java\jdk1.8.0_40\src.zip
파일 보면 java.lang.System이 보임
지금까지 위 패키지를 불러다가 쓴 것임
-----------------------------------
패키지 이름은 반드시 소문자
-----------------------------------
배포할 때 사용하는 Utility
Jsmooth 같은 유틸
install shield 같은 유료도 있음
그냥 압축 / 실행 가능하게 압축 두가지 선택가능
원하는 프로그램을 한번 실행 시킨 뒤에
프로젝트 우클릭 - EXPORT - JAVA - Runnable JAR file
파일을 원하는 곳으로 옮김
위치는 되도록 영어로만 되어 있는 곳으로 정함.
아래와 같이 실행
F:\>java -jar UtilTest1.jar
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
###################################
3. 소스코드
-----------------------------------
~\study\java\day10
~\study\java\day10\BookPack\BookTest.java
~\study\java\day10\BookPack
java BookTest.java
cd ../
cd ../
java BookPack.BookTest
클래스 패스 설정 후
아무데서나
java BookPack.BookTest
가능
package BookPack; class Book{ private String title; private String author; private int pubData; Book(String title, String author, int pubData){ this.title = title; this.author = author; this.pubData = pubData; } void Show(){ System.out.println("책제목 : " + title); System.out.println("작가명 : " + author); System.out.println("출판년도: " + pubData); } } class BookTest{ public static void main(String args[]){ Book books[] = new Book[4]; books[0] = new Book("java를 자바라", "홍길동", 1999); books[1] = new Book("jsp정복", "임꺽정", 2002); books[2] = new Book("안드로이드기초", "신윤복", 2004); books[3] = new Book("배우기 쉬운 스프링", "김홍도", 2010); for(int i = 0; i < books.length; i++){ books[i].Show(); } } } |
-----------------------------------
F:\study\java\day10\BookPack\Book.java
package BookPack; public class Book{ private String title; private String author; private int pubData; public Book(String title, String author, int pubData){ this.title = title; this.author = author; this.pubData = pubData; } public void show(){ System.out.println("책제목: " + title); System.out.println("작가명 : " + author); System.out.println("출판년도 : " + pubData); } } |
-----------------------------------
F:\study\java\day10\BookTest.java
import BookPack.Book; class BookTest{ public static void main(String args[]){ Book books[] = new Book[4]; books[0] = new Book("java를 자바라", "홍길동", 1999); books[1] = new Book("jsp정복", "임꺽정", 2002); books[2] = new Book("안드로이드기초", "신윤복", 2004); books[3] = new Book("배우기 쉬운 스프링", "김홍도", 2010); for(int i = 0; i < books.length; i++){ books[i].show(); } } } |
-----------------------------------
F:\study\java\day10\PackageTest.java
package first.second.third.forth.fifth; class PackageTest{ public static void main(String[] args){ java.lang.System.out.println("Hello World!"); } } /* javac -d . PackageTest.java 자동으로 패키지 폴더들이 생김 */ |
-----------------------------------
F:\study\java\day10\BookTest.java
아래 예제에 title 값을 변경하는 것은 안됨
이유는 protected
import BookPack.Book; class BookExt extends Book{ private String publisher; BookExt(String title, String author, int pubData, String publisher){ this.title = title; this.author = author; this.pubData = pubData; this.publisher = publisher; } public void show(){ super.show(); System.out.println("출판사명 : " + publisher); } } class BookTest{ public static void main(String args[]){ BookExt books[] = new BookExt[4]; books[0] = new BookExt("java를 자바라", "홍길동", 1999, "홍익"); books[1] = new BookExt("jsp정복", "임꺽정", 2002, "영진"); books[2] = new BookExt("안드로이드기초", "신윤복", 2004, "가남"); books[3] = new BookExt("배우기 쉬운 스프링", "김홍도", 2010, "한빛"); for(int i = 0; i < books.length; i++){ books[i].show(); } //books[0].title = "java를 놔줘라"; } } |
-----------------------------------
F:\study\java\day10\BookPack\Book.java
package BookPack; public class Book{ protected String title; protected String author; protected int pubData; public Book(){} public Book(String title, String author, int pubData){ this.title = title; this.author = author; this.pubData = pubData; } public void show(){ System.out.println("책제목: " + title); System.out.println("작가명 : " + author); System.out.println("출판년도 : " + pubData); } } |
-----------------------------------
/day10/src/utility/UtilTest1.java
cmd에서 실행 시켜보기
F:\study\java\JavaseWork\day10\bin>java utility.UtilTest1
package utility;
public class UtilTest1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("나 출력되니?");
}
}
public class UtilTest1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("나 출력되니?");
}
}
package utility; import java.util.Calendar; import java.util.Date; public class UtilTest1 { public static void main(String[] args) { // TODO Data와 Calendar // toString은 Object가 가지는 걸로 모든 객체가 가지고 있고 사용가능 // System.out.println(new Date().toString()); // 매번 인스턴스 생성해서 써야함 System.out.println(new Date()); System.out.println("------------------------------"); // Singleton // 인스턴스 생성되지 않음 Calendar cal = Calendar.getInstance(); System.out.println(cal.getTime()); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int date = cal.get(Calendar.DATE); int hour = cal.get(Calendar.HOUR); int min = cal.get(Calendar.MINUTE); int sec = cal.get(Calendar.SECOND); System.out.println("오늘은 " + year + "년 " + month + "월 " + date + "일 " + hour + "시 " + min + "분 " + sec + "초 " + "입니다."); } } |
-----------------------------------
###################################
4. 과제
-----------------------------------
4. 과제
-----------------------------------
-----------------------------------
-----------------------------------
###################################
5. 과제 해결
-----------------------------------
5. 과제 해결
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------