728x90

 

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 하는 클래스이름을 적는

728x90
반응형

+ Recent posts