본문 바로가기
Backend/JAVA

java-하나의 package 내, 여러 class 내 method 선언하기 1

by YERIEL_염주둥 2020. 3. 2.
728x90

 

▶ 하나의 패키지내 여러 개의 클래스 내 리턴 없고 입력 없는 메서드를 선언할 수 있다.

 1. user class data type으로 u01 객체 참조 변수를 선언하면 주소값이 null이고 user 생성자 메서드로 새로운 객체를 생성하면 생성된 객체의 주소 값을 u01 객체 참조 변수에 할당한다. 
 2.u01 객체 참조 변수에 uid데이터를 입력하면 user 클래스를 통해 생성된 객체를 찾아가서 data영역 uid 전역변수에 "id001"값을 입력한다.
 3.u01 객체 참조 변수의 uid를 불러오려고하면 user클래스를 통해 생성 된 객체를 찾아가서 data 영역 uid 전역변수의 setting 값을 꺼내서 콘솔창에 출력한다.

package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
		
		user u01 = new user();
		System.out.println(u01 + "<- u01");
		uPrint(u01);
		
		//id001	pw001	010-0001	남	20	구매자

		u01.uid ="id001";
		u01.upw ="pw001";
		u01.uphone ="010-0001";
		u01.ugender ='남';
		u01.uage = 20;
		u01.ulevel = "구매자";
		
		uPrint(u01);
		
		//id002	pw002	010-0002	여	30	판매자
		user u02 = new user();
		u02.uid = "id002";
		u02.upw = "pw002";
		u02.uphone = "010-0002";
		u02.ugender = '여';
		u02.uage = 30;
		u02.ulevel = "판매자";

		uPrint(u02);		
		
	}

	//회원 출력하는 메서드 선언
	public static void uPrint(user getu) {
		System.out.println("---회원 가입 내역---");
		System.out.println(getu.uid + "<- 아이디");
		System.out.println(getu.upw + "<- 비번");
		System.out.println(getu.uphone + "<- 휴대폰");
		System.out.println(getu.ugender + "<- 성별");
		System.out.println(getu.uage + "<- 나이");
		System.out.println(getu.ulevel + "<- 권한");
		System.out.println("---회원 가입 내역 END---");
		
	}
	
}
package kr.or.ksmart.A;

public class user {

	String uid;	
	String upw;
	String uphone;	
	char ugender;	
	int uage;	
	String ulevel;

}

1. User class data type 의 객체 참조변수 0u01을 선언하고 User 생성자메소드를 통해 객체를 생성 후 생성된 객체의 주소값을 u01 객체 참조 변수에 할당한다. 
2-2. 객체참조변수 u01에 할당된 주소 즉,  
User 클래스를 통해 생성된 객체의 주소로 찾아가 데이터 영역의 uid,upw, uphone, gender,uage,ulevel의 값을 각각 "id001","pw001","010-0001",'남',20,"구매자" 로 셋팅한다. 
2-2. 객체참조변수 u01에 할당된 주소 즉,  
User 클래스를 통해 생성된 객체의 주소로 찾아가 데이터 영역의 uid,upw, uphone, gender,uage,ulevel의 값을 각각 "id002","pw002","010-0002",'여',30,"판매자" 로 셋팅한다.
3-1. 객체참조변수 u01에 할당된 주소를 입력값으로 하여 uPirnt메소드를 호출한다. 
uPrint 메소드는 매개변수 getu에  u01에 할당되  주소값을 대입 후 실행된다. 
객체참조변수 u01에 할당된 주소 즉, User클래스를 통해 생성된 객체의 주소로 찾아가  데이터 영역의 uid,upw, uphone, gender,uage,ulevel의 값을 겟팅하여 콘솔창에 출력한다. 
3-2. 객체참조변수 u02에 할당된 주소를 입력값으로 하여 uPirnt메소드를 호출한다. 
uPrint 메소드는 매개변수 getu에  u02에 할당되  주소값을 대입 후 실행된다. 
객체참조변수 u01에 할당된 주소 즉, User클래스를 통해 생성된 객체의 주소로 찾아가  데이터 영역의 uid,upw, uphone, gender,uage,ulevel의 값을 겟팅하여 콘솔창에 출력한다. 

Goods g01 = new Goods();
		System.out.println(g01 + "<- g01");
		g01.pcode = "p001";
		g01.uid = u02.uid;
		g01.pname = "노트북";
		g01.pjungsang = 2000000;
		g01.phalin = 1000000;
		g01.psangse = "SW개발용";
		
		gPrint(g01);
	public static void gPrint(Goods getp) {
		System.out.println("---상품 관리 내역---");
		System.out.println(getp.pcode + "<-상품코드");
		System.out.println(getp.uid + "<-판매자 아이디");
		System.out.println(getp.pname + "<-상품명");
		System.out.println(getp.pjungsang + "<-정상가");
		System.out.println(getp.phalin + "<-할인가");
		System.out.println(getp.psangse + "<-상품상세설명");
	}

1. Goods class data type 의 객체 참조변수 g01을 선언하고 Goods 생성자메소드를 통해 객체를 생성 후 생성된 객체의 주소값을 g01 객체 참조 변수에 할당한다.
2. 객체참조변수 g01에 할당된 주소 즉, 
Goods 클래스를 통해 생성된 객체의 주소로 찾아가 데이터 영역의  pCode, uid,pname,pjungsang,phailn,psnagse의 값을 각각 "p001",'id002","노트북", 2000000, 1000000,"sw개발용"으로 셋팅한다.
이때  g01.uid 의  유저아이디는  u02.uid의 값이다.
 g01.uid = "u002";  =   g01.uid = u02.uid;
u02객체 참조변수에 할당된 주소 즉,  User 클래스 통해 생성된 객채내 data 영역 uid 전역변수에 담겨있는 id002 값을 꺼내와서 (getting) 객체내 data 영역 uid 전역변수에 "id002"값을 셋팅한다.
3. gPrint 메소드는 매개변수 getp에  g01에 할당 된  주소값을 대입 후 실행된다.
객체참조변수 g01에 할당된 주소 즉, Goods클래스를 통해 생성된 객체의 주소로 찾아가  데이터 영역 pCode,uid,pname,pjungsang,phailn,psnagse 의 값을 겟팅하여 콘솔창에 출력한다. 

		Order o01 = new Order();
		System.out.println(o01 + "<- o01");
		o01.ocode = "o001";
		o01.pcode = g01.pcode;
		o01.uid = u01.uid;
		o01.ocount = 3;
		o01.oprice = g01.pjungsang;
		o01.ototal= o01.ocount*o01.oprice;
		o01.oaddress = "금암동";
		
		oPrint(o01);
	public static void oPrint(Order geto) {
		System.out.println("--- 주문 관리 내역---");
		System.out.println(geto.ocode +"<-주문코드");
		System.out.println(geto.pcode +"<-상품코드");
		System.out.println(geto.uid +"<-구매자아이디");
		System.out.println(geto.ocount +"<-구매수량");
		System.out.println(geto.oprice +"<-구매단가");
		System.out.println(geto.ototal +"<-결제예정금액");
		System.out.println(geto.oaddress +"<-받는주소");
	}

1. Order class data type 의 객체 참조변수 o01을 선언하고 Order 생성자메소드를 통해 객체를 생성 후 생성된 객체의 주소값을 o01 객체 참조 변수에 할당한다.
2. 객체참조변수 o01에 할당된 주소 즉, Order 클래스를 통해 생성된 객체의 주소로 찾아가 데이터  oCode,pCode,uid,ocount,oprice,ototal,oaddress 의 값을  "o001","p001","id001",3,2000000,6000000, "금암동"으로 셋팅한다.

이때  o01.uid 의  유저아이디는  u01.uid의 값이다.
 o01.uid = "id001";  =   o01.uid = u01.uid;

u01객체 참조변수에 할당된 주소 즉  User 클래스 통해 생성된 객채내 data 영역 uid 전역변수에 담겨있는 id001 값을 꺼내와서 (getting) 객체내 data 영역 uid 전역변수에 "id001"값을 셋팅한다 

o01.pCode = g01.pCode  , o01.oprice = g01.pjungsang 도 위와 같은 맥락이다. 

☞o01.ototal 의 값은 구매개수*단가 (3 * 2000000) 이다. 그래서 o01.total의 값을 o01.ototal = o01.ocount * o01.oprice; 로 셋팅하면 된다.
3. oPrint 메소드는 매개변수 geto에  o01에 할당된  주소값을 대입 후 실행된다.

객체참조변수 o01에 할당된 주소 즉, Order클래스를 통해 생성된 객체의 주소로 찾아가  데이터 영역의oCode,pCode,uid,ocount,oprice,ototal,oaddress의 값을 겟팅하여 콘솔창에 출력한다.

▷전역변수(global variable) = 필드 (field) = 멤버  = 멤버필드
프로퍼티(property)
변수의 영역 기준 (블록), 변수의 유효 범위에 따라 중괄호 밖에 선언된 변수는 안쪽에서 사용이 가능하지만 중괄호 안쪽에서 선언된 변수는 밖에서 사용 불가  
가장 큰 전역변수는 클래스 블록 바로 안에 선언 되어 있고 메서드 밖에 선언 되어있다.

 

반응형

댓글