210416_5(클래스class)
클래스 : 자바 프로그램의 기본단위.
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;
===> 결국 인스턴스화는 전부작성해야된다, 루프화시켜도됨