■ 개발 정리/JAVA

같은 package 서로다른 class 에서 메서드 호출 선언

파코키 2017. 8. 22. 11:47






같은 package 서로다른 class 에서 메서드 호출 선언하는 법


메서드를 호출할 main메서드가 있는 클래스와 메서드가 호출되어 사용되는 main메서드가 없는 클래스를 만든다.

 main메서드가 없는 클래스에는 사용될 변수 및 메서드를 선언한다.

main메서드가 있는 클래스에서 main메서드가 없는 클래스에 선언되어있는 변수나 메서드를 사용하기 위해서는 User u01 = new User()같은 식을 통해 사용하고자하는 클래스(User)의 data type으로 객체참조변수(u01)를 선언하고 생성자메서드(new User();-이때 메서드 명은 사용하고자 하는 클래스 명과 같아야한다.)를 통해 객체를 생성하고 그 객체의 주소를 객체참조변수에 할당한다.

 주소값을 할당받은 객체참조변수를 이용하여 객체안에 있는 변수에 값을 할당 시킬수 있다.(ex u01.uid="id001";) 그리고 생성된 객체안에 있는 변수 안의 값을 가져올수 있다.(ex u01.uid 아래에서는 메서드에 입력값으로 사용하여 매게변수로인해 getu.uid 로 사용됨


이런식으로 main메서드가 없는 클래스를 통해 객체를 생성하고 객체참조변수안에 생성된 객체의 주소를 할당, 그 안에 있는 변수및 메서드를 활용한다.


============main 메서드가 있는 클래스 (다른 클래스에 있는 메서드를 호출)

  1. package kr.or.ksmart.A;
  2.  
  3. public class AA2 {
  4.  
  5.     public static void main(String[] args) {
  6.         //회원관리클래스(user)통해서 객체를 생성(3명의 회원관리)
  7.        
  8.         User u01 = new User();
  9.         //클래스(객체,object)data type(ex: User)으로 객체참조변수(ex: u01)를 생성하고
  10.         //생성자 메서드(ex: new User();)를 통해 객체를 생성하고 생성된 객체의 주소를 객체참조변수에 할당한다.
  11.         Goods g01 = new Goods();
  12.         Order o01 = new Order();
  13.        
  14.         System.out.println(u01+"<--u01주소값");
  15.         System.out.println(g01+"<--g01주소값");
  16.         System.out.println(o01+"<--o01주소값");
  17.        
  18.         user_print(u01);
  19.         u01.uid="id001";
  20.         //객체참조변수(u01)을 이용하여 생성된 객체 안의 변수에 값을 대입한다.
  21.         u01.upw="pw001";
  22.         u01.uphone="010-0001";
  23.         u01.us='남';
  24.         u01.uage=20;
  25.         u01.ulevel="구매자";
  26.         user_print(u01);
  27.         //객체참조변수(u01)를 user_print메서드의 입력값으로 하여 객체참조변수 안에 있는
  28.         //생성된 객체의 주소값을 메서드의 입력값으로 한다.
  29.  
  30.         goods_print(g01);
  31.         g01.pcode = "p001";
  32.         g01.uid = u01.uid;
  33.         g01.pname = "노트북";   
  34.         g01.pjungsang = 2000000;   
  35.         g01.phalin = 1000000;  
  36.         g01.psangse = "SW개발용";
  37.         goods_print(g01);
  38.        
  39.        
  40.         order_print(o01);
  41.         o01.ocode = "o001";
  42.         o01.pcode = g01.pcode;
  43.         o01.uid = u01.uid;
  44.         o01.ocount = 3;                         //수량
  45.         o01.oprice = g01.pjungsang;             //단가
  46.         o01.ototal = o01.ocount * o01.oprice;   //수량*단가
  47.         o01.oaddress = "금암동";
  48.         order_print(o01);
  49.  
  50.                
  51.     }
  52.     //주문관리 메서드 선언
  53.     public static void order_print(Order geto){
  54.         System.out.println("-- 주문관리 시작 --");
  55.         System.out.println("주문코드 : " + geto.ocode);
  56.         System.out.println("상품코드 : " + geto.pcode);
  57.         System.out.println("구매자아이디 :" + geto.uid);
  58.         System.out.println("구매수량 : " + geto.ocount);
  59.         System.out.println("구매단가 : " + geto.oprice);
  60.         System.out.println("결제예정금액 : " + geto.ototal);
  61.         System.out.println("받는주소 : " + geto.oaddress);
  62.         System.out.println("-- 주문관리 End --");
  63.     }
  64.    
  65.     //상품조회 메서드 선언
  66.     public static void goods_print(Goods getg){
  67.         System.out.println("-- 상품정보 시작 --");
  68.         System.out.println("상품코드 : "+getg.pcode);
  69.         System.out.println("판매자아이디 : "+getg.uid);
  70.         System.out.println("상품명 : "+getg.pname);
  71.         System.out.println("상품정상가 : "+getg.pjungsang);
  72.         System.out.println("상품할인가 : "+getg.phalin);
  73.         System.out.println("상품상세설명 : "+getg.psangse);
  74.         System.out.println("-- 상품정보 End --");
  75.     }
  76.    
  77.     //회원조회 메서드 선언
  78.     //                          User getu = u01;
  79.     //User getu = kr.or.ksmart.A.User@1db9742
  80.     public static void user_print(User getu){
  81.         //parameter(매게변수) data type을 생성된 객체와 같은 클래스로 하고 생성된 객체의 주소값을
  82.         //parameter(매게변수)인 getu에 대입한다.
  83.         System.out.println("-- 회원정보 시작 --");
  84.         System.out.println("아이디 : " +getu.uid);
  85.         //parameter(매게변수)를 이용하여 생성된 객체안의 uid안에 있는 값을 불러온다.
  86.         System.out.println("비번 : " +getu.upw);
  87.         System.out.println("전화번호 : " +getu.uphone);
  88.         System.out.println("성별 : " +getu.us);
  89.         System.out.println("나이 : " +getu.uage);
  90.         System.out.println("권한 : " +getu.ulevel);
  91.         System.out.println("-- 회원정보 End --");
  92.     }
  93.  
  94. } 



=======main 메서드가 없는 클래스 (변수 및 메서드 선언만 가능)


--- User 클래스

  1. package kr.or.ksmart.A;
  2.  
  3. public class User {
  4.     //회원관리 클래스
  5.     //전역변수 (global variable)
  6.     //필드(Field)
  7.     //맴버변수 = 맴버필드
  8.     //프로퍼티(property)
  9.  
  10.     String uid;
  11.     String upw;
  12.     String uphone;
  13.     char us;   
  14.     int uage;  
  15.     String ulevel;
  16. }

--- Goods 클래스


  1. package kr.or.ksmart.A;
  2.  
  3. public class Goods {
  4.     //상품관리 클래스
  5.     //전역변수 (global variable)
  6.     //필드(Field)
  7.     //맴버변수 = 맴버필드
  8.     //프로퍼티(property)
  9.    
  10.     String pcode;   //상품코드
  11.     String uid;     //판매자 아이디
  12.     String pname;   //상품명
  13.     int pjungsang;  //정상가
  14.     int phalin;     //할인가
  15.     String psangse; //상세설명
  16. }


--- Order 클래스


  1. package kr.or.ksmart.A;
  2.  
  3. public class Order {
  4.     //주문관리 클래스
  5.     //전역변수 (global variable)
  6.     //필드(Field)
  7.     //맴버변수 = 맴버필드
  8.     //프로퍼티(property)
  9.    
  10.     String ocode;       //주문코드
  11.     String pcode;       //상품코드
  12.     String uid;         //구매자 아이디
  13.     int ocount;         //구매수량
  14.     int oprice;         //구매단가
  15.     int ototal;         //결제예정금액
  16.     String oaddress;    //받는주소
  17. }
  18.