JAVA(Sol)(정리대기중..언젠가)

210416_5(클래스class)

너굴셉 2021. 4. 16. 15:19

클래스 : 자바 프로그램의 기본단위.

                                            javac A.java            실행 java A

class A {   -----> 저장 A.java ---> 컴파일 A.class ---> A a = new A(); 인스턴스a

 int age                                                           |     a.age=19;

 public void name() {                                          |    a.name(); 

 System.out.print(age+"홍길동 입니다.");                       19홍길동입니다

}

}


-- 한개 소스에 여러개의 클래스 정의 가능

-- 대표클래스앞에 public이라고 붙인다

-- public 클래스안에 main함수를 정의한다

-- 저장 파일명은 public이 붙은 클래스명.java 가 된다

 

class A{

     메롱();

}

public class B{

 main() {

   C c = new C();

    c.hi();

}

class C{

   void hi(){

     A a = new A() ;

      a.메롱()

}

-- 위의 소스를 컴파일 하면 A.class B.class C.class 가 각각 따로 생성된다.

-- 사용할때 B가 실행될때 A와 C를 참조(의존)해서 실행하게된다

-- A와 C는 main 함수가 없기 때문에 단독실행이 불가능 하다.


--클래스안에 클래스를 정의 할 수 있다. 이것을 inner 클래스라고 부른다.

class A {  //컴파일하면 A.clss 와 A$B.class 가 생성된다.

 

 class B {  //B클래스의 역활은 A에 종속되며, 외부 클래스에서는 사용할수 없다.

 }

}

 

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

import A;

public class C {

 main( ) {

 A a =new A();

}

}

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

클래스 내부에 코드는 안나온다

clsaa A {

   int a;           변수 선언O

   int b;

  a+b;             X<====(처리식)코드는 안나온다.

   void aa(a) {}  함수정의O

int age(b) {

  a + b ;         O<=====코드는 함수(메서드) 안에서 나온다

   }

}

package chaper7;

class Pay {
	String name;
	int bonbong;
	int tex;
	int silsu;

}

public class PayCalc {
	// 동일 소스 안에 클래스가 2개 이상이면 main 함수가 있는클래스로
	// 생성한다 그리고 나머지 클래스를 부수적으로 명기한다

	public static void main(String[] args) {
		Pay p1 = new Pay(); //인스턴스생성
		Pay p2 = new Pay(); //인스턴스생성
		Pay p3 = new Pay(); //인스턴스생성

		p1.bonbong = 2000000;
		p1.name = "왕눈이";
		p1.tex = (int) (p1.bonbong * 0.045 + 0.5);
		p1.silsu = p1.bonbong - p1.tex;

		p2.bonbong = 2500000;
		p2.name = "아로미";
		p2.tex = (int) (p2.bonbong * 0.045 + 0.5);
		p2.silsu = p2.bonbong - p2.tex;

		p3.bonbong = 1500000;
		p3.name = "투투";
		p3.tex = (int) (p3.bonbong * 0.045 + 0.5);
		p3.silsu = p3.bonbong - p3.tex;

		System.out.println("-----------------");
		System.out.println("---12월 급여 내역---");
		System.out.println("-----------------");
		System.out.println("성명 :" + p1.name);
		System.out.println("본봉 :" + p1.bonbong);
		System.out.println("세금 :" + p1.tex);
		System.out.println("실수령액 :" + p1.silsu);
		System.out.println("");

		System.out.println("-----------------");
		System.out.println("---12월 급여 내역---");
		System.out.println("-----------------");
		System.out.println("성명 :" + p2.name);
		System.out.println("본봉 :" + p2.bonbong);
		System.out.println("세금 :" + p2.tex);
		System.out.println("실수령액 :" + p2.silsu);
		System.out.println("");

		System.out.println("-----------------");
		System.out.println("---12월 급여 내역---");
		System.out.println("-----------------");
		System.out.println("성명 :" + p3.name);
		System.out.println("본봉 :" + p3.bonbong);
		System.out.println("세금 :" + p3.tex);
		System.out.println("실수령액 :" + p3.silsu);
		System.out.println("");
	}

}

 

객채배열

 

class Pay {

}

class PayCalc {

  main() {

   Pay[] pay = new Pay[3]  //배열변수 만들때 new한번

      pay[0] = new Pay;  //인스턴스화할때 new 한번// new가 두번 나온다

      pay[1] = new Pay;

      pay[2] = new Pay;

   ===> 결국 인스턴스화는 전부작성해야된다, 루프화시켜도됨