JAVA1 - 13.3. 자바 문서 보는 법 - 클래스
Math.PI ← 파이 3.1415...구체적인 값이 적당한 정밀도로 저장되어 있는 변수 PI고 이 PI가 Math라는 클래스에 소속되어 있는 것
클래스(Class)
클래스의 인상은 디렉토리다
클래스는 서로 연관된 변수와 메소드를 그룹핑한다
1)내림
System.out.println(Math.floor(1.6)); // Math.floor()
결과값 1.0
2)올림
System.out.println(Math.ceil(1.6)); // Math.ceil()
결과값 2.0
JAVA1 - 13.4. 자바 문서 보는 법 - 인스턴스 & Constructor생성자
result1.txt이라는 파일에 hello1이라는 텍스트를 자바를 이용해서 작성해볼 예정
이를 해결하기 위해서 검색,질문해서 알아내고 사용하는 예제 같은 것들을 찾아낸 후 그래도 이해가 안가는 것들은 API다큐먼트를 사용해서 오랜시간에 걸쳐 분석해서 알아내야함 (알아냈다고 가정하고 수업진행)
인스턴스(Instance)
new : 복사본 만드는 커맨드
PrintWriter p1 = new PrintWriter("파일명.txt"); // 이렇게만 쓰면 빨간줄(에러발생)
//PrintWriter는 import해서 java.io에서 불러와야한다
import java.io.PrintWriter;
public class practice12 {
public static void main(String[] args) {
PrintWriter p1 = new PrintWriter("result1.txt");
}
}
아직도 빨간 줄이 있는데 PrintWriter는 파일을 읽어하는데 파일이 없으면 문제가 된다.
이러한 경우를 자바에서는 예외상황이라고 부르는데 이러한 예외를 어떻게 처리할지 정해줘야하는데 지금은 어려우니 스킵하고 add throw declaration을 클릭해둘 것
PrintWriter p1 = new PrintWriter("result1.txt");
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt");
p2.write("Hello 2");
p2.close();
수업 주제인 인스턴스로 돌아와보자
변수p1이 인스턴스
1번 PrintWriter p1 = new PrintWriter("result1.txt"); ← 의미 : result1.txt 파일 만들어라
2번 System.out.println(Math.floor(1.6)); ← 이 Math클래스는 클래스에 변수이름을 썼다
1번은 왜 굳이 복제해서 변수에 담았고, 2번은 그냥했는가의 차이가 뭘까?
위의 Math클래스는 그냥 클래스에다 변수이름을 썼는데 PrintWriter는 그냥 안쓰고 new를 붙여서 복제하여 이 복제물을 p1이라는 변수에 담았다는 차이점이 있다
만약 인스턴스를 쓰지 않는다면 어떤 불편함이 있는가 알아보자
math는 간단하게 끝낼 수 있는 일회용 작업들을 처리하지만,
PrintWriter p1 = new PrintWriter() 같은 경우 이 파일 생성과 동시에 하나만이 아닌 여러가지 작업들이 수만번 수반될 수 있기에 하나의 클래스를 사용하기 보다는 이 클래스를 복제해서 변수(인스턴스)에 넣는 것이 작업의 효율이 높기에 클래스의 제작자들이 구조를 이렇게 설계한 것
※ Math.와 PrintWriter()의 차이 : 생성자(Constructor)
PrintWriter()는 constructor(생성자)라는 것이 있고 Math는 없다
constructor가 없는 애들은 일단 일회용이라고 생각해라
constructor가 있는 애들은 이를 이용해서 instance를 만드는 것이 허용되어 있다고 생각하면 됨
ex) PrintWriter p1 = new PrintWriter("result1.txt"); // 좌측의 컨스트럭터는 PrintWriter(String fileName)
해당 클래스를 만든 사람이 해당 클래스가 인스턴스로써 활용하기를 원한다면 constructor 생성자를 가지고 있고, new 뒤에 붙은 것들이 constructor생성자이다.
※ Class와 constructor의 메커니즘 ※
constructor 앞에 new를 붙이면 얘가 복제되서 인스턴스가 되고, 이 인스턴스에 어떤 값이 오는지를 규제하기 위해서 앞에다가 PrintWriter고 하는 클래스이름을 적는 것
'JAVA > 생활코딩 JAVA1 (renewal)' 카테고리의 다른 글
생활코딩 JAVA1. 14.1-5. 나의 앱 만들기 : 기본기능구현, 변수도입, 입력값 도입&args, 이클립스 유용한 기능 (2) | 2022.01.07 |
---|---|
생활코딩 JAVA1. 13.5. 자바 문서 보는 법 : 상속(inheritance) (0) | 2022.01.05 |
생활코딩 JAVA1. 13.1-2. 자바 문서 보는 법 : API vs UI // 패키지,클래스,변수,메소드 (0) | 2022.01.05 |
생활코딩 JAVA1. 12.4-5. 직접 컴파일하고 실행하기 : 라이브러리 사용 // 입력&출력 (0) | 2022.01.02 |
생활코딩 JAVA1. 12.1-3 : 직접 컴파일하고 실행하기 (0) | 2022.01.02 |