//Google AdSense

복습해보기

①하나의 패키지 하나의 클래스
②하나의 패키지 서로다른 클래스
 (1) 리턴 없고 입력 없는 메서드 선언 및 호출
 (2) 리턴 없고 입력 있는 메서드 선언 및 호출
 (3) 리턴 있고 입력 없는 메서드 선언 및 호출
 (4) 리턴 있고 입력 있는 메서드 선언 및 호출

 

 

 

8 return o 입력 o

 

구매자 > 상품주문
    주문내역출력


AA04 class

한명의 회원을 등록
판매자면
하나의 상품 등록
order insert 호출 후 리턴받기
판매자아니면 
상품등록불가

주문내역을 TotalPrint class 내 출력 메서드를 활용해서 출력

 

 

-주말동안 ①② 복습 다시 하기

'Diary' 카테고리의 다른 글

html에선 html include가 안된다구!?  (0) 2020.06.10
[Java] Array, ArrayList  (0) 2020.04.16
[Database] 요구사항분석해보기  (0) 2020.04.06
20200304  (0) 2020.03.04

1 - ② - ⑶ 하나의 패키지  서로다른 클래스에서 리턴 있고 입력 없는 메서드 선언 및 호출

서로다른 클래스에서 변수의 접근지정자가 private으로 지정되어 접근 불가할 때
어떻게 변수의 값을 setting / getting 할 수 있을까?
전역변수 하나에 setting method/ getting method를 선언

ex) private String uid;

<setting method>
return data type void
method name setUid
입력개수 1
매개변수 data type String
매개변수 name a
처리 과정 : 입력받은 값을 전역변수uid에 setting

<getting method>
return data type String
method name getUid
입력개수 0
매개변수 data type -
매개변수 name -
처리 과정 : data 영역의 전역변수uid에 담겨있는 값을 리턴

 

 

세팅이 된 모습

 

지역변수 (매개변수) 이름과 전역변수 이름이 같으면 어떻게 될까?

null이 출력된다.

메서드 내부의 지역변수들은 처리 후 데이터가 휘발된다.

 

this.를 붙이면 세팅이 된다.

 

 

1 - ② - ⑷ 하나의 패키지  서로다른 클래스에서 리턴 있고 입력 있는 메서드 선언 및 호출

 

 

package kr.or.ksmart.A;

public class User {
	
	private String uid;
	private String upw;
	private String uphone;
	private char ugender;
	private int uage;
	private String ulevel;
	
	
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
		
	}
	public String getUpw() {
		return upw;
	}
	public void setUpw(String upw) {
		this.upw = upw;
	}
	public String getUphone() {
		return uphone;
	}
	public void setUphone(String uphone) {
		this.uphone = uphone;
	}
	public char getUgender() {
		return ugender;
	}
	public void setUgender(char ugender) {
		this.ugender = ugender;
	}
	public int getUage() {
		return uage;
	}
	public void setUage(int uage) {
		this.uage = uage;
	}
	public String getUlevel() {
		return ulevel;
	}
	public void setUlevel(String ulevel) {
		this.ulevel = ulevel;
	}

	
}

 

package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
				
		User u01 = new User();
		u01.setUid("id001");
		System.out.println(u01.getUid());
		
		u01.setUid("id001");
		u01.setUpw("pw001");
		u01.setUphone("010-001");
		u01.setUgender('남');
		u01.setUage(20);
		u01.setUlevel("구매자");
	
		uPrint(u01);
		
		
	
		User u02 = new User();
		
	
		u02.setUid("id002");
		u02.setUpw ("pw002");
		u02.setUphone ("010-002");
		u02.setUgender ('여');
		u02.setUage (30);
		u02.setUlevel ("판매자");
		
		uPrint(u02);
		
		
		
	
		User u03 = new User();

		
		u03.setUid ("id003");
		u03.setUpw ("pw003");
		u03.setUphone ("010-003");
		u03.setUgender ('여');
		u03.setUage (31);
		u03.setUlevel ("판매자");

		uPrint(u03);

		
	
		User u04 = new User();

		
		u04.setUid ("id004");
		u04.setUpw ("pw004");
		u04.setUphone ("010-004");
		u04.setUgender ('여');
		u04.setUage (32);
		u04.setUlevel ("관리자");

		uPrint(u04);
	

	}
	

	public static void uPrint (User getu){
		System.out.println("--- 회원가입 내역 ---");
		System.out.println(getu+"<-getu");
		System.out.println(getu.getUid() + "<- 아이디");
		System.out.println(getu.getUpw() + "<- 비밀번호");
		System.out.println(getu.getUphone() + "<- 전화번호");
		System.out.println(getu.getUgender() + "<- 성별");
		System.out.println(getu.getUage() + "<- 나이");
		System.out.println(getu.getUlevel() + "<- 권한");
		System.out.println("--- 회원가입 내역 End ---");
		
	}

	
}

흐름

 


 

AA01 Class ← Class 3가지 (User, Goods, Order) 호출

User class code

더보기
package kr.or.ksmart.A;

public class User {
	
	private String uid;
	private String upw;
	private String uphone;
	private char ugender;
	private int uage;
	private String ulevel;
	
	
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
		
	}
	public String getUpw() {
		return upw;
	}
	public void setUpw(String upw) {
		this.upw = upw;
	}
	public String getUphone() {
		return uphone;
	}
	public void setUphone(String uphone) {
		this.uphone = uphone;
	}
	public char getUgender() {
		return ugender;
	}
	public void setUgender(char ugender) {
		this.ugender = ugender;
	}
	public int getUage() {
		return uage;
	}
	public void setUage(int uage) {
		this.uage = uage;
	}
	public String getUlevel() {
		return ulevel;
	}
	public void setUlevel(String ulevel) {
		this.ulevel = ulevel;
	}

	
}

 

Goods class code

더보기
package kr.or.ksmart.A;

public class Goods {

	private String pcode ;
	private String uid;
	private String pname;
	private int pjungsang ;
	private int phalin;
	private String psangse;
	
	public String getPcode() {
		return pcode;
	}
	public void setPcode(String pcode) {
		this.pcode = pcode;
	}
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
	public int getPjungsang() {
		return pjungsang;
	}
	public void setPjungsang(int pjungsang) {
		this.pjungsang = pjungsang;
	}
	public int getPhalin() {
		return phalin;
	}
	public void setPhalin(int phalin) {
		this.phalin = phalin;
	}
	public String getPsangse() {
		return psangse;
	}
	public void setPsangse(String psangse) {
		this.psangse = psangse;
	}
	
	
	
}

Order class code

더보기

 

package kr.or.ksmart.A;

public class Order {
	
	private String ocode;
	private String pcode;
	private String uid;
	private int ocount;
	private int oprice;
	private int ototal;
	private String oaddress;

	public String getOcode() {
		return ocode;
	}
	public void setOcode(String ocode) {
		this.ocode = ocode;
	}
	public String getPcode() {
		return pcode;
	}
	public void setPcode(String pcode) {
		this.pcode = pcode;
	}
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public int getOcount() {
		return ocount;
	}
	public void setOcount(int ocount) {
		this.ocount = ocount;
	}
	public int getOprice() {
		return oprice;
	}
	public void setOprice(int oprice) {
		this.oprice = oprice;
	}
	public int getOtotal() {
		return ototal;
	}
	public void setOtotal(int ototal) {
		this.ototal = ototal;
	}
	public String getOaddress() {
		return oaddress;
	}
	public void setOaddress(String oaddress) {
		this.oaddress = oaddress;
	}
	
	

}

AA01 class code

더보기
package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
				
		User u01 = new User();
		
		u01.setUid("id001");
		u01.setUpw("pw001");
		u01.setUphone("010-001");
		u01.setUgender('남');
		u01.setUage(20);
		u01.setUlevel("구매자");
	
		uPrint(u01);
		
		
	
		User u02 = new User();
		
	
		u02.setUid("id002");
		u02.setUpw ("pw002");
		u02.setUphone ("010-002");
		u02.setUgender ('여');
		u02.setUage (30);
		u02.setUlevel ("판매자");
		
		uPrint(u02);
		
		Goods g01 = new Goods();
		
		System.out.println(g01);
		
		g01.setPcode ("p001");
		g01.setUid (u02.getUid());
		g01.setPname ("노트북");
		g01.setPjungsang (2000000);
		g01.setPhalin (1000000);
		g01.setPsangse ("SW개발용");
		
		gPrint(g01);
		
		
		
		Order o01 =new Order();
		
		System.out.println(o01);
		
		o01.setOcode ("o001");
		o01.setPcode (g01.getPcode());
		o01.setUid (u02.getUid());
		o01.setOcount (3);
		o01.setOprice (g01.getPjungsang());
		o01.setOtotal (o01.getOcount() * o01.getOprice());
		o01.setOaddress ("금암동");
		
		oPrint(o01);
		
		
		
	
		User u03 = new User();

		
		u03.setUid ("id003");
		u03.setUpw ("pw003");
		u03.setUphone ("010-003");
		u03.setUgender ('여');
		u03.setUage (31);
		u03.setUlevel ("판매자");

		uPrint(u03);
		
		Goods g02 = new Goods();
		g02.setPcode ("p002");
		g02.setUid (u03.getUid());
		g02.setPname ("선풍기");
		g02.setPjungsang (50000);
		g02.setPhalin (40000);
		g02.setPsangse ("시원해");
		gPrint(g02);
		
		Order o02 =new Order();
		o02.setOcode("o002");
		o02.setPcode (g02.getPcode());
		o02.setUid (u03.getUid());
		o02.setOcount(5);
		o02.setOprice(g02.getPjungsang());
		o02.setOtotal(o02.getOcount() * o02.getOprice());
		o02.setOaddress ("서신동");
		oPrint(o02);

		
	
		User u04 = new User();

		
		u04.setUid ("id004");
		u04.setUpw ("pw004");
		u04.setUphone ("010-004");
		u04.setUgender ('여');
		u04.setUage (32);
		u04.setUlevel ("관리자");

		uPrint(u04);
		
		Goods g03 = new Goods();
	
		g03.setPcode ("p003");
		g03.setUid (u04.getUid());
		g03.setPname ("사과박스");
		g03.setPjungsang (100000);
		g03.setPhalin (80000);
		g03.setPsangse ("SW개발용");
	
		gPrint(g03);
		
		Order o03 =new Order();
		
		o03.setOcode ("o003");
		o03.setPcode(g03.getPcode());
		o03.setUid(u04.getUid());
		o03.setOcount(2);
		o03.setOprice (g03.getPjungsang());
		o03.setOtotal (o03.getOcount() * o03.getOprice());
		o03.setOaddress("덕진동");
	
		oPrint(o03);
	

	}
	

	public static void uPrint (User getu){
		System.out.println("--- 회원가입 내역 ---");

		System.out.println(getu.getUid() + "<- 아이디");
		System.out.println(getu.getUpw() + "<- 비밀번호");
		System.out.println(getu.getUphone() + "<- 전화번호");
		System.out.println(getu.getUgender() + "<- 성별");
		System.out.println(getu.getUage() + "<- 나이");
		System.out.println(getu.getUlevel() + "<- 권한");
		System.out.println("--- 회원가입 내역 End ---");
		
	}
	
	public static void gPrint (Goods getp) {
		System.out.println("--- 상품관리 내역 ---");

		System.out.println(getp.getPcode());
		System.out.println(getp.getUid());
		System.out.println(getp.getPname());
		System.out.println(getp.getPjungsang());
		System.out.println(getp.getPhalin());
		System.out.println(getp.getPsangse());
		System.out.println("--- 상품관리 내역 End ---");
	}

	public static void oPrint (Order geto) {

		
		System.out.println("--- 주문관리 내역 ---");
		System.out.println(geto.getOcode());
		System.out.println(geto.getPcode());
		System.out.println(geto.getUid());
		System.out.println(geto.getOcount());
		System.out.println(geto.getOprice());
		System.out.println(geto.getOtotal());
		System.out.println(geto.getOaddress());
		System.out.println("--- 주문관리 내역 End ---");
	}
	
}

천방지축 얼렁뚱땅 빙글빙글 돌아가는 흐름 ..

 

응용 - uPrint, pPrint, oPrint를 다른 TatlaPrint class로 분리하여보기

package kr.or.ksmart.A;

public class TotalPrint {
	
	
	public void uPrint (User getu){
		System.out.println("--- 회원가입 내역 ---");

		System.out.println(getu.getUid() + "<- 아이디");
		System.out.println(getu.getUpw() + "<- 비밀번호");
		System.out.println(getu.getUphone() + "<- 전화번호");
		System.out.println(getu.getUgender() + "<- 성별");
		System.out.println(getu.getUage() + "<- 나이");
		System.out.println(getu.getUlevel() + "<- 권한");
		System.out.println("--- 회원가입 내역 End ---");
		
	}

	public void gPrint (Goods getp) {
		System.out.println("--- 상품관리 내역 ---");

		System.out.println(getp.getPcode());
		System.out.println(getp.getUid());
		System.out.println(getp.getPname());
		System.out.println(getp.getPjungsang());
		System.out.println(getp.getPhalin());
		System.out.println(getp.getPsangse());
		System.out.println("--- 상품관리 내역 End ---");
	}

	public void oPrint (Order geto) {

		
		System.out.println("--- 주문관리 내역 ---");
		System.out.println(geto.getOcode());
		System.out.println(geto.getPcode());
		System.out.println(geto.getUid());
		System.out.println(geto.getOcount());
		System.out.println(geto.getOprice());
		System.out.println(geto.getOtotal());
		System.out.println(geto.getOaddress());
		System.out.println("--- 주문관리 내역 End ---");
	}
		
	

}

 

package kr.or.ksmart.A;

public class AA02 {


	public static void main(String[] args) {
		
		TotalPrint prnt = new TotalPrint();
		
		User u01 = new User();
		
		u01.setUid("id001");
		u01.setUpw("pw001");
		u01.setUphone("010-001");
		u01.setUgender('남');
		u01.setUage(20);
		u01.setUlevel("구매자");
		
		prnt.uPrint(u01);
	
	
		User u02 = new User();
		
	
		u02.setUid("id002");
		u02.setUpw ("pw002");
		u02.setUphone ("010-002");
		u02.setUgender ('여');
		u02.setUage (30);
		u02.setUlevel ("판매자");
		
		prnt.uPrint(u02);
		
		Goods g01 = new Goods();
		
		System.out.println(g01);
		
		g01.setPcode ("p001");
		g01.setUid (u02.getUid());
		g01.setPname ("노트북");
		g01.setPjungsang (2000000);
		g01.setPhalin (1000000);
		g01.setPsangse ("SW개발용");
		
		prnt.gPrint(g01);
				
		
		Order o01 =new Order();
		
		System.out.println(o01);
		
		o01.setOcode ("o001");
		o01.setPcode (g01.getPcode());
		o01.setUid (u02.getUid());
		o01.setOcount (3);
		o01.setOprice (g01.getPjungsang());
		o01.setOtotal (o01.getOcount() * o01.getOprice());
		o01.setOaddress ("금암동");
			
		prnt.oPrint(o01);
	
		User u03 = new User();

		
		u03.setUid ("id003");
		u03.setUpw ("pw003");
		u03.setUphone ("010-003");
		u03.setUgender ('여');
		u03.setUage (31);
		u03.setUlevel ("판매자");

		prnt.uPrint(u03);
		
		Goods g02 = new Goods();
		g02.setPcode ("p002");
		g02.setUid (u03.getUid());
		g02.setPname ("선풍기");
		g02.setPjungsang (50000);
		g02.setPhalin (40000);
		g02.setPsangse ("시원해");

		prnt.gPrint(g02);
		
		Order o02 =new Order();
		o02.setOcode("o002");
		o02.setPcode (g02.getPcode());
		o02.setUid (u03.getUid());
		o02.setOcount(5);
		o02.setOprice(g02.getPjungsang());
		o02.setOtotal(o02.getOcount() * o02.getOprice());
		o02.setOaddress ("서신동");
		
		prnt.oPrint(o02);

	
	
		User u04 = new User();

		
		u04.setUid ("id004");
		u04.setUpw ("pw004");
		u04.setUphone ("010-004");
		u04.setUgender ('여');
		u04.setUage (32);
		u04.setUlevel ("관리자");

		prnt.uPrint(u04);
		
		Goods g03 = new Goods();
	
		g03.setPcode ("p003");
		g03.setUid (u04.getUid());
		g03.setPname ("사과박스");
		g03.setPjungsang (100000);
		g03.setPhalin (80000);
		g03.setPsangse ("SW개발용");
		
		prnt.gPrint(g03);
	
		
		Order o03 =new Order();
		
		o03.setOcode ("o003");
		o03.setPcode(g03.getPcode());
		o03.setUid(u04.getUid());
		o03.setOcount(2);
		o03.setOprice (g03.getPjungsang());
		o03.setOtotal (o03.getOcount() * o03.getOprice());
		o03.setOaddress("덕진동");
		
		prnt.oPrint(o03);

	}

	

	
	
	
	

}

 

1 - ② - ⑴ 하나의 패키지서로다른 클래스에서 리턴 없고 입력 없는 메서드 선언 및 호출

더보기

회원관리클래스(설계도면!) >>>>통해서>>>> 새로운 객체 생성 > 새 주소 생성 > 데이타/메소드 영역 생김 > (id 영역에 id001값)데이터 세팅할 수 있다. -끝-

 

다시 주소를 찾아가 >> id 값 꺼내온다 .(getting)


 

package kr.or.ksmart.A;

public class User {

//*전역변수 (global variable) = 필드 (field) = 멤버 = 멤버필드
//	- 클래스 블록 안쪽 메서드 블록 바깥쪽에 선언되어있는 변수
//프로퍼티 (property)
//변수의 영역 기준 (블록기준)
//	- 중괄호 밖에 선언된 변수는 안쪽에서 사용 가능
//	- 중괄호 안에 선언된 변수는 밖에서 사용 불가
	
//User class에서 값을 세팅/게팅하는 개념X
	
	String uid;
	String upw;
	String uphone;
	char ugender;
	int uage;
	String ulevel;

}
package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
		
		
		User u01 = new User();

	}

}

User class data type으로 u01객체참조변수를 선언하고
User생성자메서드로 새로운 객체를 생성하고
생성된 객체의 주소값을 u01객체참조변수에 할당한다.

 

 

package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
		
		
		User u01 = new User();
		
		System.out.println(u01 + "<- u01");
		System.out.println(u01.uid + "<- u01.uid");
		//u01객체참조변수에 할당된 주소(User class를 통해 생성된 객체)에 찾아가서
		//data 영역 uid 전역변수에 담겨있는 값 null을 꺼내와서 (getting) 콘솔창에 출력한다.
		
		u01.uid ="id001";
		//u01객체참조변수에 할당된 주소(User class를 통해 생성된 객체)에 찾아가서 
		//data 영역 uid 전역변수에 id001 값을 세팅(입력)한다.
		
		System.out.println(u01.uid + "<- u01.uid");
		//u01객체참조변수에 할당된 주소(User class를 통해 생성된 객체)에 찾아가서 
		//data 영역 uid 전역변수에 담겨있는 값 id001을 꺼내와서 (getting) 콘솔창에 출력한다.
		
	}

}

1 - ② - ⑵ 하나의 패키지  서로다른 클래스에서 리턴 없고 입력 있는 메서드 선언 및 호출

package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
				
		User u01 = new User();
		
		uPrint(u01);
		System.out.println(u01);
		
		u01.uid = "id001";
		u01.upw = "pw001";
		u01.uphone = "010-001";
		u01.ugender = '남';
		u01.uage = 20;
		u01.ulevel = "구매자";
		uPrint(u01);
		
		User u02 = new User();
		System.out.println(u02);
		
		u02.uid = "id002";
		u02.upw = "pw002";
		u02.uphone = "010-002";
		u02.ugender = '여';
		u02.uage = 30;
		u02.ulevel = "판매자";
		uPrint(u02);
		
		User u03 = new User();
		System.out.println(u03);
		
		u03.uid = "id003";
		u03.upw = "pw003";
		u03.uphone = "010-003";
		u03.ugender = '여';
		u03.uage = 31;
		u03.ulevel = "판매자";
		uPrint(u03);
		
		User u04 = new User();
		System.out.println(u04);
		
		u04.uid = "id004";
		u04.upw = "pw004";
		u04.uphone = "010-004";
		u04.ugender = '여';
		u04.uage = 32;
		u04.ulevel = "관리자";
		uPrint(u04);
	}

	//회원 출력하는 메서드 선언

	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 ---");
		
	}
	
	
}

흐름


Class 추가 (Goods 와 Order class)

package kr.or.ksmart.A;

public class Goods {

	String pcode ;
	String uid;
	String pname;
	int pjungsang ;
	int phalin;
	String psangse;
	
}
package kr.or.ksmart.A;

public class Order {
	
	String ocode;
	String pcode;
	String uid;
	int ocount;
	int oprice;
	int ototal;
	String oaddress;

}

 

main 포함된 class 에서 값 세팅 및 출력하는 메소드 호출

package kr.or.ksmart.A;

public class AA01 {

	public static void main(String[] args) {
				
		User u01 = new User();
		
		uPrint(u01);

		
		u01.uid = "id001";
		u01.upw = "pw001";
		u01.uphone = "010-001";
		u01.ugender = '남';
		u01.uage = 20;
		u01.ulevel = "구매자";
		uPrint(u01);
		
		User u02 = new User();

		
		u02.uid = "id002";
		u02.upw = "pw002";
		u02.uphone = "010-002";
		u02.ugender = '여';
		u02.uage = 30;
		u02.ulevel = "판매자";
		uPrint(u02);
		Goods g01 = new Goods();
		g01.pcode="p001";
		g01.uid = u02.uid;
		//u02객체참조변수에 할당된 주소 즉 User class를 통해 생성된 객체 내의 data 영역의 uid 전역변수에 담겨있는 "id002" 값을 꺼내와서
		//g01객체참조변수에 할당된 주소 즉 Goods class를 통해 생성된 객체 내의 data 영역의 uid전역변수에 "id002" 값을 세팅한다.
		g01.pname ="노트북";
		g01.pjungsang =2000000;
		g01.phalin=1000000;
		g01.psangse="SW개발용";
		gPrint(g01);
		Order o01 =new Order();
		o01.ocode= "o001";
		o01.pcode= g01.pcode;
		o01.uid=u02.uid;
		o01.ocount=3;
		o01.oprice=g01.pjungsang;
		o01.ototal = (o01.ocount * o01.oprice);
		o01.oaddress ="금암동";
		oPrint(o01);
		
		
		
		
		User u03 = new User();

		
		u03.uid = "id003";
		u03.upw = "pw003";
		u03.uphone = "010-003";
		u03.ugender = '여';
		u03.uage = 31;
		u03.ulevel = "판매자";
		uPrint(u03);
		Goods g02 = new Goods();
		g02.pcode ="p002";
		g02.uid = u03.uid;
		g02.pname = "선풍기";
		g02.pjungsang = 50000;
		g02.phalin = 40000;
		g02.psangse ="시원해";
		gPrint(g02);
		Order o02 =new Order();
		o02.ocode= "o002";
		o02.pcode= g02.pcode;
		o02.uid=u03.uid;
		o02.ocount=5;
		o02.oprice=g02.pjungsang;
		o02.ototal = (o02.ocount * o02.oprice);
		o02.oaddress ="서신동";
		oPrint(o02);
				
		
		User u04 = new User();

		
		u04.uid = "id004";
		u04.upw = "pw004";
		u04.uphone = "010-004";
		u04.ugender = '여';
		u04.uage = 32;
		u04.ulevel = "관리자";
		uPrint(u04);
		Goods g03 = new Goods();
		g03.pcode = "p003";
		g03.uid = u04.uid;
		g03.pname ="사과박스";
		g03.pjungsang = 100000;
		g03.phalin = 80000;
		g03.psangse ="SW개발용";
		gPrint(g03);
		Order o03 =new Order();
		o03.ocode= "o003";
		o03.pcode= g03.pcode;
		o03.uid=u04.uid;
		o03.ocount=2;
		o03.oprice=g03.pjungsang;
		o03.ototal = (o03.ocount * o03.oprice);
		o03.oaddress ="덕진동";
		oPrint(o03);
	}

	//회원 출력하는 메서드 선언

	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 ---");
		
	}
	
	public static void gPrint (Goods getg){
		System.out.println("--- 상품관리 내역 ---");
		System.out.println(getg.pcode );
		System.out.println(getg.uid);
		System.out.println(getg.pname);
		System.out.println(getg.pjungsang);
		System.out.println(getg.phalin);
		System.out.println(getg.psangse);
		System.out.println("--- 상품관리 내역 End ---");
		
	}
	
	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);
		System.out.println("--- 주문관리 내역 End ---");
		
	}
}

호출 결과 (콘솔창 내용)

--- 회원가입 내역 ---
null<- 아이디
null<- 비밀번호
null<- 전화번호
<- 성별 0
<- 나이
null<- 권한
--- 회원가입 내역 End ---
--- 회원가입 내역 ---
id001<- 아이디
pw001<- 비밀번호
010-001<- 전화번호
남<- 성별
20<- 나이
구매자<- 권한
--- 회원가입 내역 End ---
--- 회원가입 내역 ---
id002<- 아이디
pw002<- 비밀번호
010-002<- 전화번호
여<- 성별
30<- 나이
판매자<- 권한
--- 회원가입 내역 End ---
--- 상품관리 내역 ---
p001
id002
노트북
2000000
1000000
SW개발용
--- 상품관리 내역 End ---
--- 주문관리 내역 ---
o001
p001
id002
3
2000000
6000000
금암동
--- 주문관리 내역 End ---
--- 회원가입 내역 ---
id003<- 아이디
pw003<- 비밀번호
010-003<- 전화번호
여<- 성별
31<- 나이
판매자<- 권한
--- 회원가입 내역 End ---
--- 상품관리 내역 ---
p002
id003
선풍기
50000
40000
시원해
--- 상품관리 내역 End ---
--- 주문관리 내역 ---
o002
p002
id003
5
50000
250000
서신동
--- 주문관리 내역 End ---
--- 회원가입 내역 ---
id004<- 아이디
pw004<- 비밀번호
010-004<- 전화번호
여<- 성별
32<- 나이
관리자<- 권한
--- 회원가입 내역 End ---
--- 상품관리 내역 ---
p003
id004
사과박스
100000
80000
SW개발용
--- 상품관리 내역 End ---
--- 주문관리 내역 ---
o003
p003
id004
2
100000
200000
덕진동
--- 주문관리 내역 End ---

흐름

 

1. NAVER 회원가입 화면 (폼)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
	<!-- 
		###################################################
		실습1. 네이버의 회원가입폼과 유사하게 태그를 구성하여 회원가입폼을 완성하고,
		joinProcess.jsp파일에 데이터를 전송하여 출력하시오.
		###################################################
	 -->
	 
	<div>
	NAVER
	</div>
	<form action="./joinProcess.jsp" method="post">
		
		<div>
		아이디
			<div>			
				<label>
					<input type="text" name="id" value="" >		
				</label>
			</div>
		</div>
		
		<div>
		비밀번호
			<div>			
				<label>
					<input type="password" name="pw" value="" >		
				</label>
			</div>
		</div>
		
		<div>
		비밀번호 재확인
			<div>
				<label>
					<input type="password" name="confirmPw" value="" >		
				</label>
			</div>
		</div>
		
		<div>
		이름
			<div>
			
				<label>
					<input type="text" name="name" value="" >		
				</label>
			</div>
		</div>
		
		<div>
		생년월일
			<div>
				<label>
					<input type="text" name="year" value="" placeholder="년(4자)" >		
					<select name="month" >
						<option value="">월</option>
						<option value="1">1</option>
						<option value="2">2</option>
						<option value="3">3</option>
						<option value="4">4</option>
						<option value="5">5</option>
						<option value="6">6</option>
						<option value="7">7</option>
						<option value="8">8</option>
						<option value="9">9</option>
						<option value="10">10</option>
						<option value="11">11</option>
						<option value="12">12</option>
					</select>		
					<input type="text" name="day" value="" placeholder="일" >		
				</label>
			</div>
		</div>
		
		<div>
		성별
			<div>
			
				<label>
					<select name="gender">
						<option value="">성별</option>
						<option value="m">남자</option>
						<option value="f">여자</option>
					</select>		
				</label>
			</div>
		</div>
		
		<div>
		본인 확인 이메일(선택)
			<div>		
				<label>
					<input type="text" name="email" value="" placeholder="선택입력">		
				</label>
			</div>
		</div>
		
		<div>
		휴대전화
			<div>
				<label>
					<select name="nation">
						<option value="+505">니카라과+505</option>
						<option value="+82" selected="selected">대한민국 +82</option>
						<option value="+45">덴마크 +45</option>
						<option value="+299">덴마크령그린란드 +299</option>
					</select>		
				</label>
			</div>
			<div>		
				<input type="text" name="phone" value="" placeholder="전화번호 입력">
				<input type="text" name="checkCode" value="인증번호 받기" readonly="readonly">	
			</div>
			<div>
				<input type="text" name="checkCodeWrite" value="인증번호 입력하세요" readonly="readonly">	
			</div>
		</div>
		
		<button>가입하기</button>
		
	</form>		 
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	request.setCharacterEncoding("UTF-8");

	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	String confirmPw = request.getParameter("confirmPw");
	String name = request.getParameter("name");
	String year = request.getParameter("year");
	String month = request.getParameter("month");
	String day = request.getParameter("day");
	String gender = request.getParameter("gender");
	String email = request.getParameter("email");
	String nation = request.getParameter("nation");
	String phone = request.getParameter("phone");
	
	out.println(id);
	out.println(pw);
	out.println(confirmPw);
	out.println(name);
	out.println(year);
	out.println(month);
	out.println(day);
	out.println(gender);
	out.println(email);
	out.println(nation);
	out.println(phone);
%>

폼출력

 


입력

 


데이터 전송 출력


2.네이버 로그인 화면 (레이아웃과 폼)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
	<link href="./resource/css/common.css" rel="stylesheet">

<title>로그인</title>
</head>
<body>
	<!--
		###################################################
		실습2. naver.com의 로그인 페이지를 유사하게 구성 (html, css)하고
		로그인버튼 클릭시 loginProcess.jsp에 데이터를 전송하고 출력하시오.
		###################################################
	 -->
	<header>
		<div id=lang>
			<label>
				<select name="lang">
						<option value="ko-KR">한국어</option>
						<option value="en-US">English</option>
						<option value="CN">中文(简体)</option>
						<option value="TW">中文(台灣)</option>
				</select>
			</label>
		</div>
					
	</header>
				
	
	<div id=content>
		
		<div id=logo>
			<label>
				<a href="#"><img src="./resource/img/NAVER_CI_Green.png" alt="naver"></a>
			</label>	
		</div>
		
		<form action="./loginProcess.jsp" method="post">
			<div id=id>
				<label> 
					<input type="text" name="uId" placeholder="아이디">
				</label>
			</div>
			<div id=pw>
				<label>
					<input type="password" name="uPw" placeholder="비밀번호">
				</label>
			</div>
			<div id=button>
				<label>
					<button type="submit">로그인</button>
				</label>
			</div>
			<div id=logip>
				<div> 
					<label id=log-sta>
						<input type="checkbox" name="logSta" value="로그인 상태 유지" > 로그인 상태 유지
					</label>
				</div>
				<div id=ip-check>
					<label>
						<a id=ip href="#">IP보안</a>
						<a id=on-off href="#">ON</a>
					</label>	
					<label id=secue>
						<a id=secu-t href="#">일회용 로그인</a>
					</label>
				</div>
			</div>
		</form>
	</div>
	
	
	<footer id=footer>
		<div id=find-info>
			<label>
				<a href="#">아이디 찾기</a>
				 | 
				<a href="#">비밀번호 찾기</a>
				 | 
				<a href="#">회원가입</a>
			</label>
		</div>	
			
	
	</footer>
	
	<div id=banner>
		<label>
			<img src="./resource/img/banner.png" alt="banner">
		</label>
	</div>


</body>
</html>
@charset "UTF-8";
<style type="text/css">

	div {
		margin: 0; padding: 0; font-size: 13px; color: #2e2e2e;
	}
	body{background-color: #F5F6F7;}
				
	header {margin: 10px 5px 50px 5px; float: right;}
	#content {clear:both; width:70%; margin:0 auto; text-align: center;}
	#logo {margin: 50px;}
	#logo label img {height: 45px;}
	#id, #pw, #button {margin: 15px;}
	#id label input {width: 400px; height: 50px;}
	#pw label input {width: 400px; height: 50px;}
	#button label button {width: 400px; height: 50px; background-color:#02C850; border: 0; color: #fff;}
	#logip {width: 400px; margin: 0 auto;}
	#ip-check {float: right;}
	#ip-check label a{font-size: 13px;}
	#ip, #on-off, #secu-t {text-decoration: none;}
	#ip, #secue {color:#5D5D5D;} 
	#on-off {font-weight: bold ; color:#02C850;}
	#secue {float: right; margin: 0 10px;}
	#secu-t {text-decoration: underline; color:#5D5D5D;}
	#secu-t:hover{color:#5D5D5D;}
	#log-sta {float: left; font-size: 13px;}
	#footer {width: 400px; margin: 50px auto 0 auto; padding: 15px; clear: both; text-align: center; border-top: 1px solid #2e2e2e; border-color: #CFCFCF; }
	#find-info label a{color:#5D5D5D; text-decoration: none;font-size: 13px;}
	#banner {text-align: center;}
	#banner label img{padding: 50px 0;}

</style>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%

	request.setCharacterEncoding("UTF-8");
	
	String uId= request.getParameter("uId");
	String uPw= request.getParameter("uPw");
	String logSta= request.getParameter("logSta");
	
	
	out.println(uId);
	out.println(uPw);
	if(logSta != null){out.println("로그인 유지");}
	else {out.println("로그인 유지하지 않음");}


%>

완성된 화면


데이터 전송 test 1

 


데이터 전송 test 2

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>

<style type="text/css">
	body{padding: 0; margin: 0; background-color: #f5f6f7;}
	input, button{padding: 0; margin: 0;  line-height: 50px; width: 100%;}
	#container{width: 460px; margin: 62px auto 0 auto;}
	#logo { text-align: center; margin-bottom: 70px;}
	#logo img{width: 231px;}
	.input-wrap {margin-bottom: 20px;}
	.input-wrap input{}
	#login-btn button{background-color: #03c75a; color:#fff; font-size: 15px; border: 2px solid #03c75a;}
	#content{padding-bottom:50px ; border-bottom: 1px solid #e4e4e5;}
	#footer{text-align: center; padding-top: 20px;}
</style>

</head>
<body>
	<div id="container">
		<div id="logo">
			<img src="./resource/img/NAVER_CI_Green.png">
		</div>
		<div id="content">
			<form action="./loginProcessT.jsp" method="post">
				<div class="input-wrap">
					<input type="text" name="id" placeholder="아이디">
				</div>
				<div class="input-wrap">
					<input type="text" name="pw" placeholder="패스워드">
				</div>
				<div id="login-btn">
					<button type="submit">로그인</button>
				</div>
			</form>
		</div>
		<div id="footer">
			아이디 찾기 | 비밀번호 찾기 | 회원가입
		</div>
	</div>
</body>
</html>

 

레이아웃 큰 틀부터 잡고 차근차근!
html부터 작성하고 css에서 style을 주려고 하면 꼬일 수 있음

<Form Tag 실습>

html에서는 데이터 받기가 안됨.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Form Tag</title>
</head>
<body>

	<!--  
		###############################################
		<< form tag >>
		데이터를 전송하기 위한 태그
		form 태그의 속성에 method, action을 설정하여
		전송방식 및 전송경로를 지정해야한다.
		또한 form 태그의 자식 요소에 input, select, textarea 등
		데이타 입력 태그를 두고 submit을 실행하면 데이타가 전송된다.
		
		method 속성의 값은 post와 get으로 설정이 가능
			- post : 데이터를 body에 숨겨 전송  →등록, 수정
			- get : url로 전송 →검색 등
					url에서 ?~~~ : url query
				 	ex: ?sm=tab_hty.top&where=nexearch&query=Merge+Cells&oquery=Merge+Cells&tqi=UDmpLlprvxsssBYYx4VsssssteK-098759 
				 		== ?sm=tab_hty.top
				 			&where=nexearch
				 			&query=Merge+Cells
				 			&oquery=Merge+Cells
				 			&tqi=UDmpLlprvxsssBYYx4VsssssteK-098759
				 		→	키 = 값
				 			(이어서&)키 = 값
				 			(이어서&)키 = 값
				 		 
			- action : 전송될 경로를 입력 
			
		1. input - 텍스트 등록 및 수정 태그 (type 속성에 text, radio(단일 체크), checkbox(다중체크) 설정 가능)
			1) input 속성
				- type : input의 형태 지정
					+text - 일반적인 텍스트 입력
					+radio - 같은 name 값 중 1개만 선택
					+checkbox - 같은 name 값 다중 선택
					+date, number 등
				- name : 서버에 전송될 key의 명칭
				- value : 서버에 name의 key값으로 전송될 값
				- placeholder : 안내글
		2. select - 테이터 선택 태그
		3. textarea - 장문의 텍스트 등록 태그
		4. button - 이벤트 실행 및 submit
			1) button 속성
				- type : 이벤트 형태 지정 
					+button - javascript와 연동하여 이벤트 동작
					+submit - 데이터 전송
			
			
		###############################################
	 -->

	<form action="./form2.jsp" method="get"> <!-- html에서는 데이터 받기가 안됨 -->
		<label>
			유저명 :
			<input type="text" name="memberName" value="" placeholder="유저명 입력">
		</label>
		<button type="submit">전송</button>
	</form>

</body>
</html>

 

<만들어진 폼>

 

 



 

 

 

<jsp 파일 만들기>

데이터를 주고받기 위해 jsp 파일을 만든다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



<%
	//주석
	/* 주석 */
	
	//자바코드 기록
	
	/***************************************************************
	request 객체는 요청에 해당하는 정보를 담고있다.
	request의 getParameter라는 메서드를 활용하여
	데이터를 받을 수 있다.
	
	getParameter의 메서드 인수값을 전송된 key의 명으로 넣어 해당 key의 값을 받을 수 있다.
	***************************************************************/
	request.setCharacterEncoding("UTF-8");
	
	String memberName = request.getParameter("memberName"); //parameter > 문자열
		
	out.println(memberName);

	
%>

<!-- html 작성 -->

html 파일에서 action 속성의 경로를 jsp파일의 상대경로로 설정해준다.

 

<form action="./getData.jsp" method="get"> <!-- html에서는 데이터 받기가 안됨 -->
		<label>
			유저명 :
			<input type="text" name="memberName" value="" placeholder="유저명 입력">
		</label>
		<button type="submit">전송</button>
	</form>

<form 의 method 속성을 post로 설정할 경우>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Form Tag</title>
</head>
<body>

	<form action="./getData.jsp" method="post">
		<label>
			유저명 :
			<input type="text" name="memberName" value="" placeholder="유저명 입력">
		</label>
		<button type="submit">전송</button>
	</form>

</body>
</html>

폼에 홍길동을 입력 후 전송

url에 키, 값이 보이지 않음을 확인할 수 있다.

 


<form 의 method 속성을 get으로 설정할 경우>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Form Tag</title>
</head>
<body>

	<form action="./getData.jsp" method="get"> 
		<label>
			유저명 :
			<input type="text" name="memberName" value="" placeholder="유저명 입력">
		</label>
		<button type="submit">전송</button>
	</form>

</body>
</html>

폼에 홍길동을 입력 후 전송

 

?키 = 값

?memberName=홍길동 url에 보인다.

**url 상에서 값을 변경하여도 변경된 내용이 출력된다!

 


<input type 속성 radio / checkbox>

 

	<form action="./getData.jsp" method="get"> 
		<div>		
			<label>
				유저명 :
				<input type="text" name="memberName" value="" placeholder="유저명 입력">
			</label>
		</div>
		<div>	
			<label>
				남: <input type="radio" name="memberGender" value="남"> <!-- name 속성이 같아야 한다. -->
			</label>
			<label>
				여: <input type="radio" name="memberGender" value="여"> 
			</label>
		</div>
		<div>
			<label>
				전주 : <input type="checkbox" name="memberAdd" value="전주"> <!-- name 속성이 같아야 한다. -->
			</label>
			<label>
				군산 : <input type="checkbox" name="memberAdd" value="군산">
			</label>
			<label>
				익산 : <input type="checkbox" name="memberAdd" value="익산">
			</label>
		</div>
		<button type="submit">전송</button>
	</form>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



<%

	request.setCharacterEncoding("UTF-8");
	
	String memberName = request.getParameter("memberName"); //parameter > 문자열1
	String memberGender = request.getParameter("memberGender"); 
	
	String[] memberAdd = request.getParameterValues("memberAdd"); //parameterValues > 배열값
	

	out.println(memberName);
	out.println(memberGender);
	
	if(memberAdd != null){
		for(int i=0; i < memberAdd.length; i++){
			out.println(memberAdd[i]);
		}
	}
	
	


	
%>

유저명 :

 



 

입력

 

 

출력


<input type 속성 date / number>

 

<form action="./getData.jsp" method="get"> <!-- html에서는 데이터 받기가 안됨 -->
		<div>		
			<label>
				유저명 :
				<input type="text" name="memberName" value="" placeholder="유저명 입력">
			</label>
		</div>
		<div>	
			<label>
				남: <input type="radio" name="memberGender" value="남"> <!-- name 속성이 같아야 한다. -->
			</label>
			<label>
				여: <input type="radio" name="memberGender" value="여"> <!-- name 속성이 같아야 한다. -->
			</label>
		</div>
		<div>
			<label>
				전주 : <input type="checkbox" name="memberAdd" value="전주">
			</label>
			<label>
				군산 : <input type="checkbox" name="memberAdd" value="군산">
			</label>
			<label>
				익산 : <input type="checkbox" name="memberAdd" value="익산">
			</label>
		</div>
		
		
		<div>
			<label>
				날짜 : <input type="data" name= "memberWriteDate">
			</label>
		</div>
		 <div>
			<label>
				나이 : <input type="number" name= "memberAge">
			</label>
		</div>
		
		
		
		
		<button type="submit">전송</button>
	</form>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



<%

	request.setCharacterEncoding("UTF-8");
	
	String memberName = request.getParameter("memberName"); //parameter > 문자열1
	String memberGender = request.getParameter("memberGender"); 
    
    String[] memberAdd = request.getParameterValues("memberAdd"); //parameterValues > 배열값
    
	String memberWriteDate = request.getParameter("memberWriteDate"); 
	String memberAge = request.getParameter("memberAge"); 
	

	
 

	out.println(memberName);
	out.println(memberGender);

	
	if(memberAdd != null){
		for(int i=0; i < memberAdd.length; i++){
			out.println(memberAdd[i]);
		}
	}
    
    	out.println(memberWriteDate);
	out.println(memberAge);
	
%>


유저명 :

남: 

여: 

전주 :

군산 : 

익산 : 

날짜 :

나이 : 

 



입력

 

출력


<select>

		<div>
			<label>
				선택박스 : 
				<select name="memberTest">
					<option value=""> :: 선택 :: </option>
					<option value="testvalue1">test1</option> <!-- 넘어오는 값은 속성value에 지정된 값이다 -->
					<option value="testvalue2">test2</option>
					<option value="testvalue3">test3</option>
					<option value="testvalue4">test4</option>
					<option value="testvalue5">test5</option>
				</select>
			</label>
		</div>

 

입력

 

 

 

출력

select 에서 test3으로 보이는 option의 value로는 testvalue3이 입력되었다.


<textarea>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Form Tag</title>
</head>
<body>
	
	<form action="./getData.jsp" method="get">
		<div>		
			<label>
				유저명 :
				<input type="text" name="memberName" value="" placeholder="유저명 입력">
			</label>
		</div>
		<div>	
			<label>
				남: <input type="radio" name="memberGender" value="남">
			</label>
			<label>
				여: <input type="radio" name="memberGender" value="여">
			</label>
		</div>
		<div>
			<label>
				전주 : <input type="checkbox" name="memberAdd" value="전주">
			</label>
			<label>
				군산 : <input type="checkbox" name="memberAdd" value="군산">
			</label>
			<label>
				익산 : <input type="checkbox" name="memberAdd" value="익산">
			</label>
		</div>
			<div>
			<label>
				날짜 : <input type="date" name= "memberWriteDate">
			</label>
		</div>
		<div>
			<label>
				나이 : <input type="number" name= "memberAge">
			</label>
		</div>
		
		<div>
			<label>
				선택박스 : 
				<select name="memberTest">
					<option value=""> :: 선택 :: </option>
					<option value="testvalue1">test1</option>
					<option value="testvalue2">test2</option>
					<option value="testvalue3">test3</option>
					<option value="testvalue4">test4</option>
					<option value="testvalue5">test5</option>
				</select>
			</label>
		</div>
		
		<div>	
			<label>
				본문입력 : 
				<textarea name="memberContent" style="width: 100%; height: 100px;"></textarea> 
			</label>
		</div>
		
		<button type="submit">전송</button>
	</form>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



<%
	
	request.setCharacterEncoding("UTF-8");
	
	String memberName = request.getParameter("memberName"); //parameter 
	String memberGender = request.getParameter("memberGender"); 
	
	String[] memberAdd = request.getParameterValues("memberAdd"); //parameterValues 
	
	String memberWriteDate = request.getParameter("memberWriteDate"); 
	String memberAge = request.getParameter("memberAge"); 
	String memberTest = request.getParameter("memberTest");
	String memberContent = request.getParameter("memberContent");
	
	out.println(memberName);
	out.println(memberGender);

	if(memberAdd != null){
		for(int i=0; i < memberAdd.length; i++){
			out.println(memberAdd[i]);
		}
	}

	out.println(memberWriteDate);
	out.println(memberAge);
	out.println(memberTest);
	out.println(memberContent);
	
%>

 


 

 

<div>	
	<label>
		본문입력 : 
		<textarea name="memberContent" style="width: 100%; height: 100px;">테스트입니다.</textarea> 
		<!-- <textarea>이 안에는 엔터를 포함한 모든 내용이 입력되어 호출됨!</textarea> -->	
	</label>
</div>
	

<textarea>와</textarea> 사이에는 엔터와 들여쓰기를 포함한 모든 내용이 입력된 채로 호출된다.

 

블럭 요소와 인라인 요소

블럭 요소와 인라인 요소를 이해하고 CSS의 사용방법을 확인 할 수 있다.

블럭 요소(block element)

-모든 인라인 요소를 포함할 수 있고 다른 블럭 요소도 일부 포함(자식요소로 포함)

-자동 줄바꿈

-기본적으로 가로폭 100%을 가지는 직사각형 형태

-블럭요소는 인라인 요소로도 변경 가능(CSS 속성 display로 가능)

-높이와 넓이 설정 가능

-마진 패딩 설정 가능

-주로 레이아웃을 구성할때 사용 

-br 태그 금지!

블록 요소 종류

addressarticleasideaudioblockquotecanvasdddivdlfieldsetfigcaptionfigurefooterformh1h2h3h4h5h6headerhgrouphrnoscriptoloutput, ppre, section, table, ulvideo

인라인 요소(inline element)

-항상 블록 요소안에 포함되어 있음(항상 부모 객체는 블록 요소)
-인라인 요소안에 인라인 요소 포함 가능
-높이설정 불가능
-CSS 속성 중 Line-height로 텍스트(줄) 높낮이를 조절 가능
-CSS 속성 중 text-align로 좌,우,중 정렬가능
-줄 바꿈이 자동으로 없음

인라인 요소 종류

aabbracronymbbdobigbrbuttoncitecodedfnemiimginputkbdlabelmapobjectqsampsmallscriptselectspanstrongsubsuptextareattvar

<레이아웃 구성하기 실습>

<!DOCTYPE html>
	<html>
	<head>
	<meta charset="UTF-8">
	<title>레이아웃 구성하기</title>
		<style type="text/css">
		
		
		
		/*
		****************************************
		레이아웃 구성시 주로 사용되는 css 속성
		
		float : 블럭 요소의 객체를 정렬할 때 쓰는 속성 
				- 속성이 적용된 객체는 자동 가로 사이즈 100%가 해제된다.
		clear : float으로 정렬된 속성을 해제할 때 쓰는 속성
		margin : 선택된 객체의 외부 여백 (상 우 하 좌 / 상하 좌우 / 상하좌우)
		padding : 선택된 객체의 내부 여백
		width : 가로 사이즈                                               
		height : 세로 사이즈
		min-width : 최소 가로 사이즈
		max-width : 최대 가로 사이즈
		min-height : 최소 세로 사이즈
		max-height : 최대 세로 사이즈
		****************************************
		*/
		
		a{color: #f00; text-decoration: none;}
		a:hover{color: #00f;}
		
		body{
			background-color: #efefef;
			background: url('./resource/img/logo.PNG');
			background-repeat:no-repeat;
			background-position: top center;
		}
				
		#container{width : 1100px; margin: 0 auto; min-height: 600px; clear:both;} 
		#left-wrap, #content-warp {float: left;}
		#left-wrap{width: 250px; min-height: 700px;}
		#left-wrap ul li{list-style : decimal;}
		#content-wrap{width: 900px; margin: 0;}
		#footer{clear: both; text-align: center; height: 100px; border-top: 1px solid #000;}
		
		header{margin: auto auto; height: 100px;}
		#logo{float: left; height: 50px; width: 20%; text-align: center; padding: 20px 0 }
		#logo img{width: 100px;} /* 인라인 태그중 높이가 적용되는 태그. 세로 없이 가로만 지정하면 비율에 맞춰 크기 조절  */
		#expt-logo{float: right; height: 100%; width: 80%;}
		#top-link{height: 50%; text-align: right;}
		#menu{}
		#menu ul{float: right;}
		#menu ul li{float: left; list-style: none; padding: 10px;  }
		#menu ul li a{padding: 0 15px;}
		
		td{border: 1px solid #000;}		
		
		</style>
	</head>
	<body>
	
		<header > 
			<div id="logo">
				<img src="./resource/img/logo.PNG" alt="로고" >
			</div>
			<div id="expt-logo">
				<div id="top-link">
					<a href="./layout_css.html">home</a>
					|
					<a href="#">join</a>
					|
					<a href="#">login</a>
				</div>
				<nav id= "menu">			
					<ul>
						<li> <a href="#">대메뉴1</a> </li>
						<li> <a href="#">대메뉴2</a> </li>
						<li> <a href="#">대메뉴3</a> </li>
						<li> <a href="#">대메뉴4</a> </li>
						<li> <a href="#">대메뉴5</a> </li>
					</ul>
				</nav>
				
				
			</div>
		</header>
	
		<div id= "container" >
			<div id= "left-wrap">
				<ul>
					<li> <a href="#">서브메뉴1</a> </li>
					<li> <a href="#">서브메뉴2</a> </li>
					<li> <a href="#">서브메뉴3</a> </li>
				</ul>
			</div>
			<div id="content-wrap">
								
				<!--  
				##############################################
				
					< 병합하기 >
					td의 속성을 지정하여 병합을 할 수 있다.
					
					- colspan : 가로병합
					- rowspan : 세로병합
					
				##############################################
				-->
				<table>
					
					<thead>
						<tr>
							<th>번호</th>
							<th>카테고리</th>
							<th>제목</th>
						</tr>
					</thead>
					
					<tbody>
						<tr>
							<td>
								5
							</td>
							<td rowspan="2" ><!-- 병합할 셀 개수 (나 자신을 포함) -->
								국어
							</td>
							<td>
								국어점수
							</td>
						</tr>
						<tr>
							<td>
								5
							</td>

							<td>
								국어점수2
							</td>
						</tr>
						<tr>
							<td>
								5
							</td>
							<td colspan="2">
								수학
							</td>

						</tr>
					</tbody>
				
					<tfoot>
					
					</tfoot>
				
				</table>
						
			<!--
			##########################################
				실습1. 테이블을 아래 
				분류, 제목, 작성자, 작성일의 열을 가진
				데이타를 10행을 생성하여 출력을 시키고
				같은 분류의 내용은 병합시켜라.
			##########################################	
			-->
			
			<table>
				<thead>
					<tr>
						<th>분류</th>
						<th>제목</th>
						<th>작성자</th>
						<th>작성일</th>				
					</tr>
				</thead>
				
				<tbody>
					<tr>
						<td rowspan="2">문학</td>
						<td>괭이씨미요</td>
						<td>김모모</td>
						<td>2020.02.26</td>
					</tr>
					<tr>
						
						<td>쿠쿠</td>
						<td>unis</td>
						<td>1999.01.15</td>
					</tr>
					<tr>
						<td rowspan="3">예술</td>
						<td>미학오디세이1</td>
						<td>진중권</td>
						<td>2010.10.10</td>
					</tr>
					<tr>
						
						<td>미학오디세이2</td>
						<td>진중권</td>
						<td>2011.11.11</td>
					</tr>
					<tr>
						
						<td>미학오디세이3</td>
						<td>진중권</td>
						<td>2012.12.12</td>
					</tr>
					<tr>
						<td rowspan="2">기술과학</td>
						<td>ncs학습모듈</td>
						<td>cns</td>
						<td>2020.02.25</td>
					</tr>
					<tr>
						
						<td>이기적 유전자</td>
						<td>리처드 도킨슨</td>
						<td>1976.5.5</td>
					</tr>
					<tr>
						<td>철학</td>
						<td>생각한다는 것</td>
						<td>고병권</td>
						<td>2010.12.23</td>
					</tr>
					<tr>
						<td rowspan="2">언어</td>
						<td>토익 RC</td>
						<td>토익책팔이</td>
						<td>2019.12.10</td>
					</tr>
					<tr>

						<td>토익 LC</td>
						<td>토익책팔이</td>
						<td>2019.11.5</td>
					</tr>		
				</tbody>
				
				<tfoot>
				
				
				</tfoot>
			
			
			
			</table>
			
				
			</div>
		</div>
	
		<footer id= "footer">
			풋터 영역
		</footer>
	</body>
</html>

 

css를 외부 파일(resource)로 만들기

 

Wepcontent/resource/css 폴더 내에 common.css 파일 생성

html 파일에서 작성했던 <style>..</style> 내용을 생성한 common.css에 잘라넣기

 

<CSS>

@charset "UTF-8";
<style type="text/css">
				/*
		****************************************
		레이아웃 구성시 주로 사용되는 css 속성
		
		float : 블럭 요소의 객체를 정렬할 때 쓰는 속성 
				- 속성이 적용된 객체는 자동 가로 사이즈 100%가 해제된다.
		clear : float으로 정렬된 속성을 해제할 때 쓰는 속성
		margin : 선택된 객체의 외부 여백 (상 우 하 좌 / 상하 좌우 / 상하좌우)
		padding : 선택된 객체의 내부 여백
		width : 가로 사이즈                                               
		height : 세로 사이즈
		min-width : 최소 가로 사이즈
		max-width : 최대 가로 사이즈
		min-height : 최소 세로 사이즈
		max-height : 최대 세로 사이즈
		****************************************
		*/
		
		div, span, li, td{
			margin: 0; padding: 0; font-size: 14px; color: #2e2e2e;
		}
		
		a{color: #ff0000; text-decoration: none;}
		a:hover{color: #0000ff;}
		
		body{
			background-color: #efefef;
			background: url('./resource/img/logo.PNG');
			background-repeat:no-repeat;
			background-position: top center;
		}
				
		#container{width : 1100px; margin: 0 auto; min-height: 600px; clear:both;} 
		#left-wrap, #content-warp {float: left;}
		#left-wrap{width: 250px; min-height: 700px;}
		#left-wrap ul li{list-style : decimal;}
		#content-wrap{width: 900px; margin: 0;}
		#footer{clear: both; text-align: center; height: 100px; border-top: 1px solid #000;}
		
		header{margin: auto auto; height: 100px;}
		#logo{float: left; height: 50px; width: 20%; text-align: center; padding: 20px 0 }
		#logo img{width: 100px;} /* 인라인 태그중 높이가 적용되는 태그. 세로 없이 가로만 지정하면 비율에 맞춰 크기 조절  */
		#expt-logo{float: right; height: 100%; width: 80%;}
		#top-link{height: 50%; text-align: right;}
		#menu{}
		#menu ul{float: right;}
		#menu ul li{float: left; list-style: none; padding: 10px;  }
		#menu ul li a{padding: 0 15px;}
		
		td{border: 1px solid #000;}		
		
</style>

 

 

html 파일의 <head..></head> 부분에 css 파일을 연결하는 코드 작성하기.

 

<html>

<link href="./resource/css/common.css" rel="stylesheet">
<!DOCTYPE html>
<html>
	<head>
	<meta charset="UTF-8">
	<title>레이아웃 구성하기</title>
		<link href="./resource/css/common.css" rel="stylesheet">
	</head>
	<body>
	
		<header > 
			<div id="logo">
				<img src="./resource/img/logo.PNG" alt="로고" >
			</div>
			<div id="expt-logo">
				<div id="top-link">
					<a href="./layout_css.html">home</a>
					|
					<a href="#">join</a>
					|
					<a href="#">login</a>
				</div>
				<nav id= "menu">			
					<ul> 
						<li> <a href="#">대메뉴1</a> </li>
						<li> <a href="#">대메뉴2</a> </li>
						<li> <a href="#">대메뉴3</a> </li>
						<li> <a href="#">대메뉴4</a> </li>
						<li> <a href="#">대메뉴5</a> </li>
					</ul>
				</nav>
				
				
			</div>
		</header>
	
		<div id= "container" >
			<div id= "left-wrap">
				<ul>
					<li> <a href="#">서브메뉴1</a> </li>
					<li> <a href="#">서브메뉴2</a> </li>
					<li> <a href="#">서브메뉴3</a> </li>
				</ul>
			</div>
			<div id="content-wrap">
								
				<!--  
				##############################################
				
					< 병합하기 >
					td의 속성을 지정하여 병합을 할 수 있다.
					
					- colspan : 가로병합
					- rowspan : 세로병합
					
				##############################################
				-->
				<table>
					
					<thead>
						<tr>
							<th>번호</th>
							<th>카테고리</th>
							<th>제목</th>
						</tr>
					</thead>
					
					<tbody>
						<tr>
							<td>
								5
							</td>
							<td rowspan="2" ><!-- 병합할 셀 개수 (나 자신을 포함) -->
								국어
							</td>
							<td>
								국어점수
							</td>
						</tr>
						<tr>
							<td>
								5
							</td>

							<td>
								국어점수2
							</td>
						</tr>
						<tr>
							<td>
								5
							</td>
							<td colspan="2">
								수학
							</td>

						</tr>
					</tbody>
				
					<tfoot>
					
					</tfoot>
				
				</table>
						
			<!--
			##########################################
				실습1. 테이블을 아래 
				분류, 제목, 작성자, 작성일의 열을 가진
				데이타를 10행을 생성하여 출력을 시키고
				같은 분류의 내용은 병합시켜라.
			##########################################	
			-->
			
			<table>
				<thead>
					<tr>
						<th>분류</th>
						<th>제목</th>
						<th>작성자</th>
						<th>작성일</th>				
					</tr>
				</thead>
				
				<tbody>
					<tr>
						<td rowspan="2">문학</td>
						<td>괭이씨미요</td>
						<td>김모모</td>
						<td>2020.02.26</td>
					</tr>
					<tr>
						
						<td>쿠쿠</td>
						<td>unis</td>
						<td>1999.01.15</td>
					</tr>
					<tr>
						<td rowspan="3">예술</td>
						<td>미학오디세이1</td>
						<td>진중권</td>
						<td>2010.10.10</td>
					</tr>
					<tr>
						
						<td>미학오디세이2</td>
						<td>진중권</td>
						<td>2011.11.11</td>
					</tr>
					<tr>
						
						<td>미학오디세이3</td>
						<td>진중권</td>
						<td>2012.12.12</td>
					</tr>
					<tr>
						<td rowspan="2">기술과학</td>
						<td>ncs학습모듈 어쩌구</td>
						<td>cns</td>
						<td>2020.02.25</td>
					</tr>
					<tr>
						
						<td>이기적 유전자</td>
						<td>리처드 도킨슨</td>
						<td>1976.5.5</td>
					</tr>
					<tr>
						<td>철학</td>
						<td>생각한다는 것</td>
						<td>고병권</td>
						<td>2010.12.23</td>
					</tr>
					<tr>
						<td rowspan="2">언어</td>
						<td>토익 RC</td>
						<td>토익책팔이</td>
						<td>2019.12.10</td>
					</tr>
					<tr>

						<td>토익 LC</td>
						<td>토익책팔이</td>
						<td>2019.11.5</td>
					</tr>		
				</tbody>
				
				<tfoot>
				
				
				</tfoot>
			
			
			
			</table>
			
				
			</div>
		</div>
	
		<footer id= "footer">
			풋터 영역
		</footer>
	</body>
</html>

 

 

출력되는 모습

 

 

 

method 호출 원리는 변함이 없다 | Return data type 과 method 호출은 관련이 없다!

1 - ① - ⑶ 하나의 패키지 내 하나의 클래스에서 리턴 있고 입력 없는 메서드 선언 및 호출 

 

<<실행순서 서술하기>>



① a 메서드 호출
② a 메서드 실행
  "01 a 메서드 실행" 문자열을 콘솔창에 실행
③ return 값 "1루타" 를 메서드 호출한 곳으로 리턴
④ String data type으로 result 변수 선언 "1루타" 문자열을 result 변수에 대입
⑤ result 변수에 담겨있는 "1루타" 문자열을 포함하여 콘솔창에 출력

리턴값은 하나인데 조건에 따라서 리턴값이 바뀔 수 있다.

현재는 리턴값 하나가 리턴된다.
여러개 리턴은 나중에 가능할 것!

1 - ① - ⑷ 하나의 패키지 내 하나의 클래스에서 리턴 있고 입력 있는 메서드 선언 및 호출 





<<실습>>

<기능정리>

 


package Dog.and.Cat;

public class Login {

	public static void main(String[] args) {
		
		int result = uInsert ("id002", "pw002");
		int result2 = logre (result, "윤깨물", "고슴도치");
		typsort(result2, 21);
		agegroup (result);
		
		
			
	}
	
	public static void agegroup (int log) {
		if (log == 11) {
			System.out.println("성장기");
		} else if (log == 12) {
			System.out.println("성견");
		} else if (log == 13) {
			System.out.println("중장년견");
		} else if (log == 14) {
			System.out.println("노령견");
		} else if (log == 21) {
			System.out.println("성장기");
		} else if (log == 22) {
			System.out.println("성묘");
		} else if (log == 23) {
			System.out.println("노령묘");
		} else if (log == 24) {
			System.out.println("초노령묘");
		} 
	}
	
	
	public static int typsort(int log, int aage) {

		
		if(log == 1) { 
			System.out.println("강아지 나이 : "+aage+" 살");

				if(aage <= 1) {
					log = 11;
				} else if(aage >= 2 & aage <= 4) {
					log = 12;
				} else if(aage >= 5 & aage <= 10) {
					log = 13;
				} else if (aage >= 11) {
					log = 14;
				}

		} else if(log == 2) {
			System.out.println("고양이 나이 : "+aage+" 살");
			
				if(aage <= 1) {
					log = 21;
				} else if(aage >= 2 & aage <= 4) {
					log = 22;
				} else if(aage >= 5 & aage <= 10) {
					log = 23;
				} else if (aage >= 11) {
					log = 24;
				}
		} else if (log == 3) {
			System.out.println("기타 동물 등록은 고객 센터에 문의 바랍니다.");

		}
		
		
		return log;
	}

		
	public static int logre (int log, String aname, String atype) {

			
		
			if(log == 1) { 
			System.out.println( "로그인 성공! 환영합니다.");
			System.out.println( atype+" "+aname+" 의 집사님");
				
				if(atype.equals("강아지")) {
					log = 1;
				} else if (atype.equals("고양이")) {
					log = 2;
				} else {
					log = 3;
				}
				
			} else if(log == 2) {
				System.out.println("PW를 확인하세요.");

			} else if(log == 3) {
				System.out.println("등록되지 않은 ID 입니다.");
			}
			
	
			return log;
	}
	
	public static int uInsert (String id, String pw) {
		System.out.println("ID : " +id);
		System.out.println("PW : " +pw);
		
		
		
		String dbid = "id002";
		String dbpw = "pw002";
		
		int log = 0;
		
		if(id.equals(dbid)) {
			if(pw.equals(dbpw)) {
				log = 1;
			}
			else {
				log = 2;
			}
		}else {
			log = 3;
		}
	
		return log;
	}

}

<실행 순서에 따른 해설>


① uInsert 메서드를 호출, 실행

ID : 입력된 id
PW : 입력된 pw 문자열을 콘솔창에 출력한다.

int log는 초기값이 0이다.

입력된id와 dbid가 같고 입력된 pw와 dbpw가 같을경우 log변수에 담긴 값 1
입력된 id와 dbid가 같고 입력된 pw와 dbpw가 다를경우 log변수에 담긴 값 2
입력된 id와 dbid가 다를경우 log 변수에 담긴 값 3  


입력된 id와 dbid가 같고 입력된 pw와 dbpw가 같으므로 log 변수에 담긴 값은 1



② return 값 log 변수에 담겨있는 값 1을 메서드를 호출한 곳으로 리턴



③ int data type 으로 result 변수를 선언하고 정수 1을 result 변수에 대입



④ logre 메서드를 호출, 실행

result 변수에 담겨있는 값은 정수 1 > log 변수에 입력.

log 변수에 담긴 값이 1이라면 " 로그인 성공! 환영합니다. 입력된 atype, aname의 집사님" 문자열을 출력하고
atype이 강아지 문자열일 경우 log 변수에 담긴 값 1
고양이 문자열일 경우 log 변수에 담긴 값 2
강아지 또는 고양이 문자열이 아닐 경우 log 변수에 담긴 값 3

log 변수에 담긴 값이 2라면 "PW를 확인하세요." 문자열 출력
log 변수에 담긴 값이 3이라면 "등록되지 않은 ID 입니다." 문자열 출력


log 변수에 입력된 값이 1이고 atype에 입력된 값이 고슴도치 문자열이기 때문에 log 변수에 담겨있는 값은 정수 3



⑤ return 값 log 변수에 담겨있는 값 3을  메서드를 호출한 곳으로 리턴
  int data type으로 result2를 선언하고 정수 3을 result2 변수에 대입한다.

⑥ typsort 메소드를 호출, 실행

result2 변수에 담겨있는 값은 정수 3 > log 변수에 입력.

log 변수에 담긴 값이 1이라면
강아지 나이 : aage 살 문자열 출력.
입력받은 aage의 나이가 1보다 작거나 같으면 log 변수에 담긴 값 11
2보다 크거나 같고 4보다 작거나 같으면 log 변수에 담긴 값 12
5보다 크거나  같고 10보다 작거나 같으면 log 변수에 담긴 값 13
그 외는 log 변수에 담긴 값 14


log 변수에 담긴 값이 2라면
고양이 나이 : aage 살 문자열 출력.
입력받은 aage의 나이가 1보다 작거나 같으면 log 변수에 담긴 값 21
2보다 크거나 같고 4보다 작거나 같으면 log 변수에 담긴 값 22
5보다 크거나  같고 10보다 작거나 같으면 log 변수에 담긴 값 23
그 외는 log 변수에 담긴 값 24


log 변수에 담긴 값이 3이라면 
기타 동물 등록은 고객 센터에 문의 바랍니다. 문자열 출력



log 변수에 담긴 값이 3이기 때문에 기타 동물 등록은 고객 센터에 문의 바랍니다. 문자열을 출력한다.


리턴할 log 변수에 담긴 값이 없으므로 0이 된다.



⑦ return 값 log 변수에 담긴 값 0을 메서드를 호출한 곳으로 리턴


⑧ agegroup 메서드를 호출, 실행

log 변수에 담긴 값이 11 이라면 성장기 문자열
     12 라면 성견 문자열
     13 이라면 중장년견 문자열
     14 라면 노령견 문자열
     21 이라면 성장기 문자열
     22 라면 성묘 문자열
     23 이라면 노령묘 문자열
     24 라면 초노령묘 문자열을 출력한다.

log 변수에 담긴 값이 0이므로 아무것도 출력되지 않는다.

<실행 결과> 


출력오류?!

package Dog.and.Cat;

public class Login {

	public static void main(String[] args) {
		
		int result = uInsert ("id002", "pw002");
		logre (result, "윤깨물", "고슴도치");
		typsort(result, 21);
		agegroup (result);
		
		
			
	}
	
	public static void agegroup (int log) {..
	
	public static int typsort(int log, int aage) {..
		
	public static int logre (int log, String aname, String atype) {..
	
	public static int uInsert (String id, String pw) {..
	
}

오류내용

문법상의 오류는 없었지만 의도와 다른 내용이 출력되었다.

고슴도치이기 때문에 이 내용이 출력되어야 한다.

 


 

오류 수정

메서드 호출부분에서 result 값을 계속 같은 result 값으로 받았기 때문에 발생한 오류였다!
새로운 변수 result2를 int data type 으로 지정해주고 result2 다음 메서드에서 새로운 result2의 값을 받았더니 원하는 내용이 출력되었다.

 

1. primitive data type (8가지)

 

<정수형>

비객체 타입. null 값을 가질 수 없다. 

type length range 
byte 8bit -128 ~127 
short 16bit -32768~32767 
int 32bit -2147483648~21483647
long 64bit -9223372036854775808~922337203685477580 

 

 

<실수형>

소수점값을 나타내기 위함 

type length range 
float 32bit  1.40239846e-45f ~3.40282347e+38f  
double 64bit 4.94065645841246544e-324~1.79769313486231570e+308 

 

 

<문자형>

혼합되지 않은 하나의 문자만 사용 (문자열과 혼동 주의) 

type example
char  ex) char a ='문'; 



2. reference data type

 - 객체를 참조하는 형태
 type
- String class : 참조형에 속하지만 기본형처럼 사용. 불변객체.
  기본형 비교는 == / String 객체간 비교는 .equals() 메소드 사용
- Wrapper class : 기본형을 클래스로 감싼 형태 
  기본형에 null을 넣고싶다면 래퍼클래스를 활용.
ex
기본형 대응 래퍼 클래스
byte Byte
short Short
int Int
long Long
float Float
double Double
char Char
boolean Boolean
* 참고 : void 의 래퍼 클래스 Void 도 존재

 


* 인터페이스 

interface MyInterface { 
    void add(T value); 
} 

인터페이스를 만드는 것은 새로운 참조 자료형을 만드는 것과 같다.
자료형이기 때문에 자신을 구현한 객체의 주소를 가질 수 있다.
(인터페이스에 정의된 메소드만 사용 가능)



* 배열형 

public class ArrayType { 
    public static void main(String[] args) { 
        int [] i = new int[2]; 
        Long [] l = new Long[2]; 
        Object[][] o = null; 
    } 
} 

기본형으로도 만들 수 있고 참조형으로도 만들 수 있다. 

자료형에 대해 []를 선언함으로 배열을 지정.
(배열형 변수 또안 배열의 주소를 가지고 있기 때문에 클래스형의 특징과 일치)
같은 객체의 주소를 바라보게 만들면 동일한 배열을 가리킨다.

'REPORT' 카테고리의 다른 글

URL URI  (0) 2020.05.14
절대경로와 상대경로  (0) 2020.02.24

1.절대경로

원하는 경로를 Root 디렉터리부터 모두 적은 것
어떠한 웹페이지나 파일이 가지고 있는 고유한 경로


ex)
http://www.naver.com
C:\users\document\untitled.jpg


2. 상대경로

 현재 위치한 곳을 기준으로 한 그곳의 위치

  ex)
C:\users\document를 기준으로
C:\users\document\ex\untitled.jpg > \ex\untitled.jpg
C:\users\document > ./
C:\users > ../


'REPORT' 카테고리의 다른 글

URL URI  (0) 2020.05.14
JAVA data type (primitive & reference)  (0) 2020.02.24
준비된 동작이 호출시에 동작한다.

1. 자바 기초 문법

 * 메서드를 선언하고 호출 할 수 있다.
  - 12가지 경우의 수
   ① 하나의 패키지하나의 클래스에서 메서드 선언 및 호출 (4가지)
     (1) 리턴X 입력X & 리턴X 입력O
     (2) 리턴O 입력X & 리턴O 입력O
   ② 하나의 패키지서로다른 클래스에서 메서드 선언 및 호출 (4가지)
     (1) 리턴X 입력X & 리턴X 입력O
     (2) 리턴O 입력X & 리턴O 입력O
   ③ 서로다른 패키지 내 서로다른 클래스에서 메서드 선언 및 호출 (4가지)
     (1) 리턴X 입력X & 리턴X 입력O
     (2) 리턴O 입력X & 리턴O 입력O

 문법은 끝이 있지만 응용은 끝이 없다.

 

 

 

* java 파일 생성

 

 - Web Content가 아닌 Java Resources > src에서 작업
 - 한국스마트정보교육원 : ksmart.or.kr (패키지 명은 보통 도메인을 뒤집어 쓴다.)
 - package : kr.or.ksmart.A

  · src>kr>or>ksmart>A 경로의 폴더가 생긴 모습
 - class : AA01
 - class : AA02
 - class : AA03
 - class : AA04

· class 생성시 public static void main(Sting[] args) 체크


· AA01.java 가 생성된 모습

· AA01.java 파일의 내용





1 - ① - ⑴ 하나의 패키지 내 하나의 클래스에서 리턴 없고 입력 없는 메서드 선언 및 호출 

 - 중괄호를 잘 열고 닫자! (block 개념)


선언한 메서드를 호출한 모습!

1 - ① - ⑵ 하나의 패키지 내 하나의 클래스에서 리턴 없고 입력 있는 메서드 선언 및 호출 

 - (int age) : age 변수에는 정수값만 입력되어야 한다.
 - a(10); : a(int age) = 10
  * int data type으로 age 변수를 선언하고 10 값을 age 변수에 대입(입력)

a메서드 호출 시 10 정수값을 age 매개변수에 입력 후 대입하여 메서드가 실행된다. (콘솔창에 출력)



<<실행순서 서술하기>>



예제 1)

  >> b 메서드 호출시 홍길동 문자열을 name 매개변수에 입력 후 메서드 실행


예제2)

  >> c 메서드 호출시 남 문자를 gender 매개변수에 입력 후 메서드 실행


예제 3)

*********메서드 선언*********
 1) 접근지시(지정)자 (Access Modifier)
 
  - public 
   [ public (모든곳) / protected (같은 패키지) / private (같은 클래스) ]

 2) 정적키워드 : static 

 3) return data type  
  - void (리턴x) 

 4) method name : uInsert 
  
 5) 매개변수 data type / name 
  - 첫번째 매개변수 data type: String 
     *첫번째 매개변수 name : name 
  - 두번째 매개변수 data type: int 
     *두번째 매개변수 name : age 
  - 세번째 매개변수 data type: char
    *세번째 매개변수 name : gender 
                      로 메서드가 선언 되었다.
  
*********메서드 호출 원리 (가장 중요!)*********
 1) 메서드name 일치
 2) 매개변수 개수와 입력 개수 일치 
 3) 매개변수 data type에 일치하는 값이 각각의 매개변수에 입력되어야 메서드가 호출

* 조건의 false/true를 확인하는 방법 



method body 내에 조건식만 출력해보기

<<조건식>>

예제1-1) int/ if, else if

예제 1-2) int/if, else

 


예제 3) String/ if 안의 if, else


예제4) char/ if, else if, else

 

*Method Overloading

하나의 클래스에서 동일한 이름의 메서드를 입력받는 데이터의 개수와 data type을 다르게 프로그래밍 할 수 있는 방법.

<<실습>>

 1. 하나의 메서드 기능 정리

2. JAVA 코드 작성

3. 결과

                       

+ Recent posts