꾸준히개발하자 2020. 8. 10. 17:09

 

import kr.or.bit.common.Car;
/*
    클래스 == 설계도 == 타입
    클래스 구성 요소 : [필드 + 함수] + 생성자 함수
    필드(field) >> 고유 정보 , 상태 정보 , 참조(부품) 정보 자원 >> 변수 
    함수,메소드(function) >> 기능(행위)
   추가적으로 생성자  >>  필드의 초기화를 목적으로 하는 함수
   클래스 , 필드 , 생성자 , 함수  : 영역 (범위 scope) >> 접근자 , 한정자  , 수정자  
   >> public , private , default , protected 통칭해서 modifier 이라고 한다.  
    1. public class Car {} // 자동차 설계도 (kr.or.bit.common)
    2. class AirPlane {} // 컴파일러가 자동(내부적으로) default 접근자 
    	>> default class AirPlane....
    	>> ** default 접근자는 : [같은 폴더에서 접근 가능] [다른 폴더에 있으면 서로 접근 불가 ] 
    	>> ** default 접근자는 : 같은 폴더(package) 내에서 [연습 목적] 
    3. class Air >> src 폴더 
    4. 연습 : public class Ex01_main 파일 안에서 클래스 생성 연습 

	하나의 물리적인 자바 파일은 여러개의 클래스를 가질수있다. 
	Ex01_main.java >> class Test{}  안에 클래스가 있다
	  단 대표는 하나다 public class 는 하나이다. 물리적인 파일명과 논리적인 파일명이 똑같아야 한다. 
	  >> 나머지는 default   
 */
 
class Test { // 연습  // default 
	int data; // 컴파일러가 자동으로 default;
	public int p_iv; // 어디에서나 공유( 폴더 )
	private int pri_iv; // 개인적인 캡슐화  - 숨긴다 . 감추가 private으로 감추다 
}

public class Ex01_main {
	public static void main(String[] args) {	
		Car c = new Car();
//		AirPlane air = new AirPlane();
		Air air = new Air();
		Test t = new Test();
		int t1 = t.data;
		int t2 = t.p_iv;
	}
}

 

다른 패키지 

package kr.or.bit.common;

public class Car { // public은 공간의 제약을 받지 않는다.
	
	int i; // 컴파일러가 자동으로 default i; 
	
	public int window; // 어디에서나 공유(폴더)
	private int pri; // 
	
	
	
		
}

 

class Car만 해놓으면 default 로 받아들여져서  같은패키지에서만 접근이 가능하다.

 

package kr.or.bit.common2;
import kr.or.bit.common.*;

public class Car2 {
	
	
	public static void main(String[] args) {
		Car car = new Car();
		car.window = 10;
	}
}

 

 

 

--------------------------------------------------------------------------------------------------------

package kr.or.bit;

import kr.or.bit.person.Person;

public class Ex01_Ref_Type {

	public static void main(String[] args) {
		Person person = new Person();
		person.name="홍길동";
		person.age=100;
		person.power=true;
	}
}

 

package kr.or.bit.person;

// class == 설계도 == 데이터 타입
// 설계도는 구체화(메모리) 를 통해서 객체 생성
// 구체화된거 : 객체 = 인스턴스 
// 설계도  :  필드(고유,상태,부품) + 메소드(함수) ... + 생성자 
// 속성 + 기능 
public class Person {
	// 멤버 필드
	public String name;
	public int age;
	public boolean power;
}