ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 같은 package 서로다른 class 에서 메서드 호출 선언
    ■ 개발 정리/JAVA 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.  


Designed by Tistory.