728x90

 

public : 접근제어자라 불림

파일명인 class명 앞에는 퍼블릭을 붙이며, 한번만 등장한다

 

 

클래스 Print랑 클래스명이자 파일명인 oop05를 이클립스에서 저장(컴파일) 했을 때,

자바 확장자 파일과 더불어 파일명 Print이고 확장자가 클래스인 파일도 같이 생성된다

즉, 하나의 자바파일에서 그 안에 클래스를 여러개 만들면 그 클래스 개수만큼 .class파일이 생성된다

이는 메인 파일 안에 다 넣어서 거대하게 만들 수도 있지만 따로 클래스만 떼어서 파일을 만들 수도 있다는 의미

  • 이클립스에서 새로운 클래스 만들 때, public static void main(String[] args) 체크를 안하고 클래스만 따로 만들어서 위와 같은 클래스 파일을 만들 수도 있는 것
  • 거대 프로젝트에서 협업할 때 이런 식으로 나눠서 할 수 있는 장점

 

 

※ 이클립스 Refactor 클래스타입 파일 만들기

[Refactor] - [Move type to New File]

사이드 클래스 부분만 따로 떼어서 파일화 시킴

 

 

리팩터 전

파일1개

// OOP 4.2. 클래스 - 형식

// 이클립스 [Refactor] - [Move type to New File]
//	사이드 클래스 부분만 따로 떼어서 파일화 시킴
//
class Print04_2 {
	public static String delimiter = ""; 
	public static void A() {
		// ... 1억줄 코드
		System.out.println(delimiter); // printA() 메소드 안에  delimiter가 없다면
		System.out.println("A");	   // 이 파일 클래스(메인 메소드 위에)에서 찾아서 사용
		System.out.println("A");	   // 
	}
	public static void B() {
		// ... 1억줄 코드
		System.out.println(delimiter);
		System.out.println("B");
		System.out.println("B");
	}
}
public class OOP04_2 {
	public static void main(String[] args) {
		
		Print04_2.delimiter = "----";	// 추가 경로지정 : 클래스명. 추가
		Print04_2.A();					
		Print04_2.A();	
		
		Print04_2.delimiter = "====";	
		Print04_2.B();
		Print04_2.B();			
	}
}

 

리팩터 후

파일 2개

public class OOP04_2 {
	public static void main(String[] args) {
		
		Print04_2.delimiter = "----";	// 추가 경로지정 : 클래스명. 추가
		Print04_2.A();					
		Print04_2.A();	
		
		Print04_2.delimiter = "====";	
		Print04_2.B();
		Print04_2.B();			
	}
}
class Print04_2 {
	public static String delimiter = ""; 
	public static void A() {
		// ... 1억줄 코드
		System.out.println(delimiter); // printA() 메소드 안에  delimiter가 없다면
		System.out.println("A");	   // 이 파일 클래스(메인 메소드 위에)에서 찾아서 사용
		System.out.println("A");	   // 
	}
	public static void B() {
		// ... 1억줄 코드
		System.out.println(delimiter);
		System.out.println("B");
		System.out.println("B");
	}
}

 

 

 

728x90
반응형

+ Recent posts