//Google AdSense

 @Override 어노테이션

package kr.or.ksmart;

class Car{
	private int num;
	private int gas;
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getGas() {
		return gas;
	}
	public void setGas(int gas) {
		this.gas = gas;
	}	
}

class Bus extends Car{
	@Override
	public void setGas(int gas) {
		super.setGas(gas + 1000);
	}
}

class Sport extends Car{
	@Override
	public void setGas(int gas) {
		super.setGas(gas + 500);
	}
}

public class JavaBasic01 {
	
	public static void main(String[] args) {
		/**
		 * 오버라이딩
		 * - 슈퍼클래스의 메서드와 동일한 메서드 명과 인수로 재 구현하는 방식
		 * - 슈퍼클래스의 메서드를 재 구현 할시 @Override 어노테이션이 붙는다.
		 */
		
		String type = "bus";
		Car car = null;
		if("car".equals(type)) {
			car = new Car();			
		}else if("bus".equals(type)) {
			car = new Bus();
		}else if("sport".equals(type)) {			
			car = new Sport();
		}
		car.setGas(1000);
		System.out.println(car.getGas() + " <<  " + type + " gas");
		
		
	}
}

final

package kr.or.ksmart;

class Sample{
	public void print(String print) {
		System.out.println(print);
	}
	public final void print(String print, String type) {
		System.out.println(print + " : " + type);
	}
}
class SubSample extends Sample{
	@Override
	public void print(String print) {
		super.print(print);
	}
}

public class JavaBasic02 {
	
	//상수 만들기
	public final static String ADD = "전주시";
	
	public static void main(String[] args) {
		/**
		 * final
		 * - 더 이상 변경이 불가능하도록 만드는 키워드
		 * 
		 * 상수 : final 키워드가 붙으며 변수명은 주로 대문자로 쓰인다.
		 * 메서드 : 메서드에 final이 붙을 경우 오버라이딩을 할 수 없다.
		 * 클래스 : 클래스에 final이 붙으면 상속을 할 수 없다.
		 */
		
		//ADD = "전북 전주시";
	}
}

extends 키워드가 (상속)이 없는 클래스는 기본적으로 Object 클래스를 상속 받는다.

package kr.or.ksmart;

import java.lang.reflect.Method;

class Sample2{
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
}

public class JavaBasic03 {
	public static void main(String[] args) {
		Sample2 s = new Sample2();
		/**
		 * Sample2클래스는 extends 키워드가 (상속)이 없기때문에 기본적으로
		 * Object 클래스를 상속 받는다.
		 */
		Class sampleClass = s.getClass();
		//네임스페이스 가지고 오기
		System.out.println(sampleClass.getName() + " <<  Class 명 가지고 오기");		
		Method[] mArray = sampleClass.getMethods();
		for(int i=0; i < mArray.length; i++) {
			Method m = mArray[i];
			System.out.println(m.getName());
		}
		
	}
}

 


추상클래스

package kr.or.ksmart;

abstract class Sample3{
	public abstract void print();
}
class SubSample3 extends Sample3{
	@Override
	public void print() {		
		System.out.println("추상 메서드 구현");
	}
	
}
public class JavaBasic04 {
	public static void main(String[] args) {
		/**
		 * 추상클래스
		 * - 클래스명 앞에 abstract 키워드가 붙는다.
		 * - abstract 키워드가 붙은 추상 메서드를 구현할 수 있다.
		 * - 추상클래스는 일반적은 메서드 및 필드도 구현이 가능하다.
		 * - 추상적인 클래스는 직접 인스턴스화를 할 수 없다.
		 * - 추상 메서드는  몸체가 없다. ('{ }' 구현부가 생략되어야 한다.)
		 * - 추상 메서드는 서브 클래스에서 필히 구현이 되어야한다.(오버라이딩)
		 */
		//추상 클래스는 직접 인스턴스화를 할 수 없다.
		//Sample3 sample3 = new Sample3();
		
		//추상적인 클래스를 상속받아 구현된 서브클래스
		//추상클래스가 직접 인스턴스화를 하는게 아니라 슈퍼클래스 
		//참조타입으로 서브클래스가 인스턴스화된다.
		Sample3 s = new SubSample3();
		
	}
}
package kr.or.ksmart;

abstract class Calculator {
	protected int n1;
	protected int n2;
	public abstract void sum(int n1, int n2); 
	public final int print() {
		return n1 + n2;
	}
}
class Sum extends Calculator {
	@Override
	public void sum(int n1, int n2) {
		super.n1 = n1;
		super.n2 = n2;
	}	
}

public class JavaBasic05 {
	public static void main(String[] args) {
		Calculator cal = new Sum();
		cal.sum(10,20);
		System.out.println(cal.print());
	}
}

 


package kr.or.ksmart;

class User{
	private String name;
	private String age;
	public User(String name, String age) {
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public String getAge() {
		return age;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + "]";
	}	
}

class ComPanyUser extends User{

	public ComPanyUser(String name, String age) {
		super(name, age);
	}
	
}

public class JavaBasicEx01 {

	public static void main(String[] args) {
		/**
		 * 실습1. User클래스가 있다. User클래스를 확장시켜
		 * ComPanyUser를 구현하고 인스턴스화를 하여 호출하여라.
		 */
		
		ComPanyUser comUser = new ComPanyUser("홍길동","20");
		User user = comUser;

	}

}
package kr.or.ksmart;

class Car2{
	private String number;
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}	
}

class Bus2 extends Car2{
	@Override
	public void setNumber(String number) {
		super.setNumber("B " + number);
	}
}

class Sport2 extends Car2{
	@Override
	public void setNumber(String number) {
		super.setNumber("S " + number);
	}
}


public class JavaBasicEx02 {

	public static void main(String[] args) {
		/**
		 * 실습2. Car2라는 클래스가 있다. Car2의 필드에는 String 타입의 number변수가 있다.
		 *  그리고 setNumber, getNumber 메서드도 가지고 있다. 
		 *  Car2를 상속받아 구현된 클래스는 Bus2와 Sport2클래스가 있으며,
		 *  Bus2와 Sport2의 클래스에서 Car2의 메서드 setNumber를 오버라이딩하여 
		 *  메서드를 재구현하였다.
		 *  Bus2와 Sport2의 클래스에서 getNumber 메서드 호출시
		 *  Bus2클래스의 getNumber 결과값은 'B 번호'로 가공되서 결과물 출력
		 *  Sport2클래스의 getNumber 결과값은 'S 번호'로 가공되서 결과물 출력 되도록 하여라.
		 */
		
		Car2 car = null;
		String type = "bus";
		
		if("car".equals(type)) {
			car = new Car2();
		}else if("bus".equals(type)) {
			car = new Bus2();
		}else if("sport".equals(type)) {		
			car = new Sport2();
		}		
		car.setNumber("1234");
		System.out.println(car.getNumber() + " << " + type + " number");
		
	}

}
package kr.or.ksmart;

abstract class Document{
	protected String documentName;
	public abstract int writeProcess(String documentName) ;
	public final int approval() {
		System.out.println(documentName + " 결재 완료");
		return 1;
	}
}

class Vacation extends Document{
	@Override
	public int writeProcess(String documentName) {
		//휴가 관련된 데이타 db에 등록
		this.documentName = documentName;
		System.out.println(documentName + " 작성 완료");
		return 1;
	}	
}

class BusinessTrip extends Document{
	@Override
	public int writeProcess(String documentName) {
		//출장에 관련된 데이타 db에 등록
		this.documentName = documentName;
		System.out.println(documentName + " 작성 완료");
		return 0;
	}
}

public class JavaBasicEx03 {

	public static void main(String[] args) {
		/*
		 * 실습3. Document라는 추상 클래스가 있다.
		 * writeProcess라는 추상 메서드를 가지고 
		 * approval이라는 final 메서드가 있다.
		 * Document를 상속받아 구현되는 휴가신청서, 출장신청서 클래스를 만들어 구현하고
		 * 호출하여라.
		 * */
		
		Document doc = null;
		String type = "vacation";
		if("vacation".equals(type)) {
			doc = new Vacation();
		}else if("businessTrip".equals(type)) {
			doc = new BusinessTrip();
		}
		
		doc.writeProcess(type);
		doc.approval();
		
	}

}

 

null 원리 / garbage collection

null을 대입하면 어떠한 객체도 가리킬 수 없다.

garbage collection : 객체를 어떤 변수도 참조하지 않으면 Java의 판단에 따라 객체가 소멸되고 객체를 생성하기 전의 상태로 돌아감.


상속 슈퍼클래스 / 서브클래스

package kr.or.ksmart;

class SuperClass {
	private String name;
	
	public SuperClass () {
		System.out.println("슈퍼클래스 호출");
	}
	public SuperClass(String name) {
		this.name = name;
		System.out.println("슈퍼클래스 생성자 메서드 오버로딩 호출");
	}
	

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	

}
class SubClass extends SuperClass {
	public String age;
	public SubClass () {
		System.out.println("서브클래스 호출");
	}
	public SubClass(String name) {
		super(name);
		System.out.println("서브클래스 생성자 메서드 오버로딩 호출");
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	

}

public class JavaBasic06 {

	public static void main(String[] args) {
		/*
		 * 상속
		 * 이미 생성된 클래스를 상속하여 확장한다.
		 * 확장 대상 클래스는 슈퍼클래스, 확장 실행하는 클래스는 서브클래스이다.
		 * extends 라는 키워드를 활용하여 가능하다.
		 * 서브클래스는 슈퍼클래스의 필드 및 메서드를 가진다.
		 * 접근지정자의 영향을 받는다.
		 * 서브클래스에서 부모클래스를 가르키는 키워드는 super 이다.
		 * super. 부모 메서드 혹은 부모의 필드
		 * super() 부모 생성자 메서드
		 */
		
		/*SubClass subClass = new SubClass();
		subClass.setName("홍길동");
		subClass.setAge("20");
		System.out.println(subClass.getName());
		System.out.println(subClass.getAge());*/
		
		/*SuperClass superClass = new SuperClass();
		superClass.setName("이순신");
		System.out.println(superClass.getName());*/
		
		SubClass subClass = new SubClass("홍길동");
		subClass.setAge("20");
		System.out.println(subClass.getName());
		System.out.println(subClass.getAge());
	}

}
package kr.or.ksmart;

class SuperClass2 {
	public SuperClass2(String name) {
		System.out.println("슈퍼클래스 인수 : "+name);
	}
}
class SubClass2 extends SuperClass2 {
	public SubClass2(String name) {
		super(name); //슈퍼클래스의 생성자를 골라서 호출 가능
		System.out.println("서브클래스 인수 : "+name);
	}
}

public class JavaBasic07 {

	public static void main(String[] args) {
		SubClass2 subClass2 = new SubClass2("홍길동");
		
	}

}

객체지향 4대조건 : 상속 추상화 캡슐화 다형성


다형성 / 업캐스팅 / 다운캐스팅

package kr.or.ksmart;

import javax.jws.soap.SOAPBinding;

class Car {
	private int num;
	private int gas;
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getGas() {
		return gas;
	}
	public void setGas(int gas) {
		this.gas = gas;
	}
	@Override
	public String toString() {
		return "Car [num=" + num + ", gas=" + gas + "]" ;
	}
}
class Bus extends Car {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "Bus [name=" + name + "] "+ super.toString();
	}	
}

class Sport extends Car {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Sport [name=" + name + "] " + super.toString();
	}
}

public class JavaBsic01 {

	public static void main(String[] args) {
		/*
		 * 다형성
		 * 하나의 클래스를 상속받아 여러개의 클래스로 확장하는 경우
		 * 상속의 주체가 되는 슈퍼클래스의 참조타입으로 업캐스팅이 가능하며,
		 * 업캐스팅된 객체로 비지니스 로직 처리가 가능하다.
		 * 
		 * 업캐스팅
		 * 상속받아 객체화된 대상을 슈퍼클래스 참조타입으로 캐스팅 하는 것
		 * 
		 * 다운캐스팅
		 * 객체화된 부모클래스에서 상속을 받은 서브클래스로 캐스팅 되는 것
		 */
		
		
		String type = "sport";
		Car car = null;
		if("bus".equals(type)) {
			Bus bus = new Bus();
			bus.setNum(1000);
			bus.setGas(1000);
			bus.setName("내버스");
			/*System.out.println(bus.getNum());
			System.out.println(bus.getGas());
			System.out.println(bus.getName());*/
			System.out.println(bus.toString());
			car = bus; //UpCasting
		} else if ("sport".equals(type)){
			Sport sport = new Sport();
			sport.setNum(2000);
			sport.setGas(2000);
			sport.setName("내스포츠카");
			/*System.out.println(sport.getNum());
			System.out.println(sport.getGas());
			System.out.println(sport.getName());*/
			System.out.println(sport.toString());
			car = sport; //UpCasting
		}
		
		/**
		 * 슈퍼클래스를 참조타입으로 서브클래스 인스턴스화 하기
		 * 참조타입의 
		 */
		
		Car car2 = null;
		
		
		if("bus".equals(type)) {
			car2 = new Bus();
			car2.setNum(1000);
			car2.setGas(1000);
		} else if ("sport".equals(type)) {
			car2 = new Sport();
			car2.setNum(2000);
			car2.setGas(2000);
		}
		System.out.println("----------------------------------------------------");
		System.out.println(car2.toString());
		
		//UpCasting
		Car car3 = new Bus();
		//DownCasting
		Bus bus = (Bus) car2;
		System.out.println(bus.toString());
	}
	
	
}
package kr.or.ksmart;

class Car2 {
	private int num;
	private int gas;
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getGas() {
		return gas;
	}
	public void setGas(int gas) {
		this.gas = gas;
	}
	@Override
	public String toString() {
		return "Car2 [num=" + num + ", gas=" + gas + "]";
	}
	
}

class Bus2 extends Car2 {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Bus2 [name=" + name + "] " + super.toString();
	}
}

class Sport2 extends Car2 {
	private char course;

	public char getCourse() {
		return course;
	}

	public void setCourse(char course) {
		this.course = course;
	}

	@Override
	public String toString() {
		return "sport2 [course=" + course + "] " + super.toString();
	}
	
}
public class JavaBasicEx01 {

	public static void main(String[] args) {
		/*
		 * 실습3. Car2라는 클래스가 있다.
		 * Car2를 기준으로 다른 아래의 클래스를 확장시켜 다형성을 이용하여 비지니스 로직을 처리할 것이다.
		 * 아래의 클래스를 확장시켜 다형성 코드를 완성하여라.
		 * 서브클래스 명 : Bus2, Sport2
		 */
		Car2 car2 = null;
		String type = "sport";
		if("bus".equals(type)) {
			Bus2 bus2 = new Bus2();
			bus2.setName("시내버스");
			bus2.setNum(1234);
			bus2.setGas(5000);
			System.out.println(bus2.toString());
			car2 = bus2;
		} else if ("sport".equals(type)) {
			Sport2 sport2 = new Sport2();
			sport2.setCourse('D');
			sport2.setNum(4321);
			sport2.setGas(5555);
			System.out.println(sport2.toString());
			car2 = sport2;
		}
		
	}

}

 


업캐스팅 / 다운캐스팅

package kr.or.ksmart;

class MyClass{
	public String myName;
}

public class JavaBasic02 {

	public static void main(String[] args) {
		/*Object myClass = new MyClass();
		myClass.myName < x*/
		MyClass myClass = new MyClass();
		myClass.myName = "홍길동";
		
		Object myClassObject = myClass; //오브젝트 클래스로 업캐스팅
		
		MyClass myClass2 = (MyClass) myClassObject; //다운캐스팅
		
		//에러발생
		//JavaBasic02 myClass3 = (JavaBasic02) myClassObject;
		
		System.out.println(myClass2.myName);
		
	}

}

'JAVA' 카테고리의 다른 글

[JavaBasic] 추상화 실습  (0) 2020.04.28
[JavaBasic] 오버라이딩 / final / 추상클래스  (0) 2020.04.28
[Java Basic] 생성자 / 오버로딩  (0) 2020.04.22
[Java Basic] Casting / Array  (0) 2020.04.22
package kr.or.ksmart;

class UserDto{
	private String userName;
	private String userEmail;
	private String userPw;
	private String userTel;
	private String userAdd;
	private String compName;
	private String compTel;
	private String userLevel;
	
	public String getUserLevel() {
		return userLevel;
	}
	public void setUserLevel(String userLevel) {
		this.userLevel = userLevel;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserEmail() {
		return userEmail;
	}
	public void setUserEmail(String userEmail) {
		this.userEmail = userEmail;
	}
	public String getUserPw() {
		return userPw;
	}
	public void setUserPw(String userPw) {
		this.userPw = userPw;
	}
	public String getUserTel() {
		return userTel;
	}
	public void setUserTel(String userTel) {
		this.userTel = userTel;
	}
	public String getUserAdd() {
		return userAdd;
	}
	public void setUserAdd(String userAdd) {
		this.userAdd = userAdd;
	}
	public String getCompName() {
		return compName;
	}
	public void setCompName(String compName) {
		this.compName = compName;
	}
	public String getCompTel() {
		return compTel;
	}
	public void setCompTel(String compTel) {
		this.compTel = compTel;
	}
	
}

class UserService{ //dao와 연결
	/**
	 * 회원등록 메서드
	 * @param userDto
	 * @return 
	 */
	public int userAddProcess(UserDto userDto) {
		//기업 관련 데이터가 있을 경우 레벨을 기업회원으로 설정
		String userLevel = null;
		if ( userDto != null) {
			if(	!"".equals(userDto.getCompName()) && "".equals(userDto.getCompTel()) ) {
				userLevel = "기업회원";
			} else {
				userLevel = "일반회원";
			}
		}
		userDto.setUserLevel(userLevel);
		
		UserDao userDao = new UserDao();
		return userDao.userAddProcess(userDto); 
	}
}

class UserDao{ //db연결
	/**
	 * 회원등록 메서드
	 * @param userDto
	 * @return
	 */
	public int userAddProcess(UserDto userDto) {
		//dao에서 userDto값 콘솔에 출력하시오.
		int result = 0;
		if(userDto != null) {
			if(userDto.getUserName() != "" && userDto.getUserEmail() != "" 
					&& userDto.getUserPw() != "" && userDto.getUserTel() != "" 
					&& userDto.getUserAdd() != "" && userDto.getUserLevel() != ""){
			System.out.println(userDto.getUserName());
			System.out.println(userDto.getUserEmail());
			System.out.println(userDto.getUserPw());
			System.out.println(userDto.getUserTel());
			System.out.println(userDto.getUserAdd());
			System.out.println(userDto.getUserLevel());
			System.out.println(userDto.getCompName());
			System.out.println(userDto.getCompTel());
			result = 1;
			}
		}
		return result; //db에 정상 등록 완료 이후에는 1 이상이 리턴되어야 함
	}
}

public class JavaBasicEx01 {

	public static void main(String[] args) {
		/*
		 * 실습1. 회원가입 한다는 가정을 두고 아래의 조건에 맞는 클래스를 선언하고 호출하여라
		 * 1) 콘트롤러, 서비스, dao, dto 존재
		 * 2) 콘트롤러에서 파라미터를 받아 dao를 통해 db에 데이터 등록
		 * 3) db에 데이터 등록 전에 서비스 단에서 회원 레벨 설정
		 * 4) 회원 레벨은 기업회원 관련 데이터가 있으면 기업회원으로 없으면 일반회원으로
		 * 5) 콘트롤러 > 서비스 > dao 호출하여 실행 결과값을 리턴 받아야 함
		 * 6) 콘트롤러에서 결과값을 받아 등록 완료 되었을 경우 '완료' 메세지 출력 실패시 '실패' 메세지 출력 
		 * 7) 파라미터 정의
		 * 		- 회원명, 이메일, 패스워드, 회원휴대전화번호, 주소, 기업명, 기업전화번호
		 * 		- 파라미터명 : userName, userEmail, userPw, userTel, userAdd, compName, compTel
		 */
		
		String userName = "홍길동";
		String userEmail="aaa@aaa";
		String userPw = "pw001";
		String userTel = "010-001-0011";
		String userAdd = "전라북도";
		String compName = "한국스마트정보교육원";
		String compTel = "063-717-1008";
		
		UserDto userDto = new UserDto();
		userDto.setUserName(userName);
		userDto.setUserEmail(userEmail);
		userDto.setUserPw(userPw);
		userDto.setUserTel(userTel);
		userDto.setUserAdd(userAdd);
		userDto.setCompName(compName);
		userDto.setCompTel(compTel);
		
		
		UserService userService = new UserService();
		int result = userService.userAddProcess(userDto);
		if (result > 0) {
			System.out.println("=====등록완료=====");
		} else {
			System.out.println("=====등록실패=====");
		}		
	}

}

생성자 / 오버로딩

package kr.or.ksmart;

import java.io.File;

class User{
	
	private String name;
	private String age;
	
	public void setUserInfo(String name) {
		this.name = name;
	}
	public void setUserInfo(String name, String age) {
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public String getAge() {
		return age;
	}
}

class UserInfoService{
	public int userAddProcess(User user) {
		System.out.println("userAddProcess 호출");
		return 1;
	}
	public int userAddProcess(User user, File file) {
		int result = userAddProcess(user);
		if(result > 0 ) {
			//파일처리
			System.out.println("userAddProcess 오버로딩 호출");
		}
		return result;
	}
}

public class JavaBasic01 {

	public static void main(String[] args) {
		/**
		 * 메서드 오버로딩
		 * 동일한 매서드명으로 메서드 선언이 가능하다.
		 * 단 인수 타입, 인수 개수가 달라야 한다.
		 * 
		 * 주의점
		 * 메서드의 리턴타입으로 메서드 오버로딩을 할 수 없다.
		 * 메서드의 인수명으로 메서드 오버로딩을 할 수 없다.
		 */
		
		User user = new User();
		user.setUserInfo("홍길동", "20");
		File file = null ; 
		
		UserInfoService service = new UserInfoService();
		//service.userAddProcess(user);
		service.userAddProcess(user, file);
	}
}
package kr.or.ksmart;
class Sum {

	private int sum;
		
	public Sum(int num1, int num2) {
		this.sum = num1 + num2;
	}
		
	int getSum() {
		return sum;
	}
}
public class JavaBasicEx02 {

	public static void main(String[] args) {
		/*
		 * 실습2.
		 * Sum 클래스를 인스턴스화 할 때 int형 데이터 인수 2개를 넘겨 인스턴스화 하고 getSum() 메서드로 합산 결과를 받아 출력하시오.
		 */
		Sum sum = new Sum(10,90);
		int result = sum.getSum();
		System.out.println(result);
	}

}

 

package kr.or.ksmart;

class Car {
	private int num;
	private int gas;
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getGas() {
		return gas;
	}
	public void setGas(int gas) {
		this.gas = gas;
	}
}
class CreateCar{
	private Car car;
	public CreateCar(Car car) {
		this.car = car;
	}
	public void setNum ( int num) {
		car.setNum(num);
	}
	public void setGas (int gas) {
		car.setGas(gas);
	}
	public Car getCar() {
		return car;
	}
}


public class JavaBasic03 {

	public static void main(String[] args) {	
		CreateCar createCar = new CreateCar(new Car());
		createCar.setNum(1000);
		createCar.setGas(100);
		Car car = createCar.getCar();
		System.out.println(car.getNum());
		System.out.println(car.getGas());
	}

}

 

package kr.or.ksmart;

class Ex01 {
	public static int count = 0;
	public int num;
	
	Ex01(){
		count++;
		num++;
	}
	public static void exCall() {
		//System.out.println(num);
		System.out.println(count + " (exCall 합산 결과 값)");
	}
}

public class JavaBasic04 {

	public static void main(String[] args) {
		/*
		 * 클래스 변수, 클래스 메서드
		 * 
		 * 데이터 혹은 메서드를 공유하는 변수 혹은 메서드
		 * static이라는 키워드가 붙는다.
		 */
		
		Ex01 ex01 = new Ex01();
		System.out.println("count : " + ex01.count);
		System.out.println("num : " + ex01.num);
		Ex01 ex02 = new Ex01();
		System.out.println("count : " + ex02.count);
		System.out.println("num : " + ex02.num);
		Ex01 ex03 = new Ex01();
		System.out.println("count : " + ex03.count);
		System.out.println("num : " + ex03.num);
		Ex01 ex04 = new Ex01();
		System.out.println("count : " + ex04.count);
		System.out.println("num : " + ex04.num);
		
		Ex01.exCall();
	}

}
package kr.or.ksmart;

class MemberDto{
	private String userName;
	private String userAge;
	private String userEmail;
	private String userTel;
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserAge() {
		return userAge;
	}
	public void setUserAge(String userAge) {
		this.userAge = userAge;
	}
	public String getUserEmail() {
		return userEmail;
	}
	public void setUserEmail(String userEmail) {
		this.userEmail = userEmail;
	}
	public String getUserTel() {
		return userTel;
	}
	public void setUserTel(String userTel) {
		this.userTel = userTel;
	}	
}
class MemberService{
	public int memberJoinPorcess(MemberDto memberDto) {
		MemberDao mDao = new MemberDao();
		return mDao.memberJoinPorcess(memberDto);
	}
}
class MemberDao{
	public int memberJoinPorcess(MemberDto memberDto) {
		System.out.println(memberDto.getUserName());
		System.out.println(memberDto.getUserAge());
		System.out.println(memberDto.getUserEmail());
		System.out.println(memberDto.getUserTel());
		return 1;
	}
}

public class JavaBasicEx07 {

	public static void main(String[] args) {
		/*
		 * 실습8. 회원가입을 한다는 가정하에. 다음의 클래스를 생성하고
		 * 각각 controller > service > dao 순으로 객체 전달하도록 하여라.
		 * 가정 
		 * controller > main 메서드
		 * service > MemberService 클래스 생성 > db에 등록이 완료되었을 경우 리턴값 1
		 * dao > MemberDao 클래스 생성 > db에 등록이 완료되었을 경우 리턴값 1
		 * dto > MemberDto 클래스 생성 
		 * 
		 * 콘트롤러에 넘어온 파라미터 
		 * userName : '홍길동', userAge : 20 , userEmail : 'user@nave.com',
		 * userTel : '010-0000-0000'
		 * */
		String userName = "홍길동";
		String userAge = "20";
		String userEmail = "user@nave.com";
		String userTel = "010-0000-0000";
		
		//서비스단 호출하여 결과값을 출력하여라.
		//1. dto 객체 생성 > 서비스 호출 > dao 호출 > 결과값 리턴
		
		MemberDto mdto = new MemberDto();
		mdto.setUserName(userName);
		mdto.setUserAge(userAge);
		mdto.setUserEmail(userEmail);
		mdto.setUserTel(userTel);
		
		MemberService mService = new MemberService();
		int result = mService.memberJoinPorcess(mdto);
		System.out.println("db 등록 결과값 : " + result);

	}

}

Casting

package kr.or.ksmart;

public class JavaBasic01 {

	public static void main(String[] args) {
		/*
		 * 형변환 (케스팅)
		 * 다른 자료형(데이타형)으로 변환할때 
		 */
		
		int inum = 160; 
		double dnum = inum; //명시적으로 형변환
		
		System.out.println(inum + " -- " + dnum);
		
		//큰 데이타 형에서 작은형 데이타로 변환시 케스팅 연산자를 활용해야하며
		//변환될 데이타형의 크기를 넘어서는 안된다.
		int inum2 = (int) dnum; //케스팅연산자를 활용하여 형변환
		
		System.out.println(dnum + " -- " + inum2);
		
		/*
		 * 다른 데이타형끼리 연산하기
		 * - 다른 데이타 형끼리 연산시 큰형으로 변환 후 연산이 된다.
		 * */
		int inum3 = 10;
		double dnum2 = 5.2;
		System.out.println("다른형끼리 연산 ->" + inum3 + dnum2);
		//연산을 할 경우 연산자 우선 순위를 기억하여 코드 작성
		System.out.println("다른형끼리 연산 ->" + (inum3 * dnum2));
		
	}

}
package kr.or.ksmart;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaBasicEx01 {

	public static void main(String[] args) throws IOException {
		/*
		 * 실습1. 키보드(표준입력장치)로 다섯과목의 점수를 받아
		 * 합계와 평균을 구하시오.
		 * 50,68,75,83,36
		 * */
		
		//System.in -> 표준입력장치(키보드)
		InputStreamReader reder = new InputStreamReader(System.in);
		//키보드 입력을 임시적으로 저장할 공간 선언
		BufferedReader br = new BufferedReader(reder);
		
		System.out.println("과목 1~5의 점수를 정수로 입력하십시오.");
		
		double sum = 0;
		for(int i=0; i < 5; i++) {
			String line = br.readLine();
			if(line != null && !"".equals(line.trim())) {				
				sum += Double.parseDouble(line);
			}
		}
		int sum2 = (int) sum;
		//double을  int로 케스팅한 결과
		System.out.println("점수 합산 : " + sum2);
		//double과 int 연산임으로 결과값은 double
		System.out.println("점수 평균 : " + (sum / 5));

	}

}

Array

package kr.or.ksmart;

public class JavaBasic02 {
	
	public static void main(String[] args) {
		/*
		 * 배열
		 * 메모리 공간에 여러개의 값을 저장하는 객체
		 * 배열선언방법
		 * 
		 * 기본형
		 * 데이타형[] 변수명 = new 데이타형[배열크기]; 
		 * 데이타형[] 변수명 = new 데이타형[]{"데이타"};
		 * */
		
		//데이타형은 객체(클래스)로 선언가능하다.
		int[] numArray = new int[5];
		String[] strArray = new String[5];
		
		//배열에 값 대입하기
		//배열의 요소를 인덱스로 접근하여 값을 대입한다.
		//배열의 크기를 넘어서는 인덱스로 접근하여 값을 대입할 수 없다.
		numArray[0] = 1;
		numArray[1] = 2;
		numArray[2] = 3;
		numArray[3] = 4;
		numArray[4] = 5;
		//에러 강제 발생
		//numArray[5] = 6;
		
		for(int i=0; i < numArray.length; i++) {
			System.out.println(numArray[i] + " --> 인덱스" + i);
		}
		
	}
	
}
package kr.or.ksmart;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaBasicEx02 {

	public static void main(String[] args) throws IOException {
		/*
		 * 실습1. 키보드(표준입력장치)로 다섯과목의 점수를 받아
		 * 합계와 평균을 구하시오.(아래의 구문 다 출력 / 배열활용)
		 * 
		 * 학생의 점수를 받아 평균값과 합산값을 출력시키시오.
		 * 50
		 * 68
		 * 75
		 * 83
		 * 36
		 * 학생점수의 합산값 : 
		 * 학생점수의 평균값 :
		 * */
		
		//System.in -> 표준입력장치(키보드)
		InputStreamReader reder = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(reder);
		
		System.out.println("학생의 점수를 받아 평균값과 합산값을 출력시키시오.");
		
		double[] numArray = new double[5];
		
		for(int i=0; i < numArray.length; i++) {
			String line = br.readLine();
			if(line != null && !"".equals(line.trim())) {
				numArray[i] = Double.parseDouble(line);
			}
		}
		
		double sum = 0;
		for(int i=0; i < numArray.length; i++) {
			sum += numArray[i];
		}
		int num = (int) sum;
		System.out.println("학생점수의 합산값 : "+ num);
		System.out.println("학생점수의 평균값 : "+ (sum / numArray.length));
		
		
	}

}
package kr.or.ksmart;

public class JavaBasicEx03 {

	public static void main(String[] args) {
		/*
		 * 실습3. 아래의 배열이 있다. 배열의 값 중 최댓값과 최소값을 구하여 출력하여라.
		 * */
		
		int[] numArray = new int[] {25,5,10,37,35};
		int min = numArray[0];
		int max = numArray[0];
		
		for(int i=0; i < numArray.length; i++) {
			if(min > numArray[i]) {
				min = numArray[i];
			}
			if(max < numArray[i]) {
				max = numArray[i];
			}
		}
		
		System.out.println("최소값 : " + min);
		System.out.println("최댓값 : " + max);
		

	}

}

Class Basic

package kr.or.ksmart;

/*
 * 클래스 선언하기
 * - 클래스키워드와 함께 클래스명을 지정
 * - 접근지정자 지정
 * - 필드와 메서드를 같는다.
 * 
 * 1.접근지정자
 * - public : 전 패키지내에 접근가능
 * - protected : 해당 패키지 내에서 접근가능
 * - private : 해당 클래스에서 접근가능
 * - default : 접근 지정자가 명시 안되어 있는 클래스나 메서드를 말하며, protected와 동일
 * */
public class JavaBasic03 {
	
	//필드는 접근지정자와 데이타형 변수명으로 변수를 선언가능
	//접근지정자 데이타형 변수명;
	//필드는 주로 private으로 선언하여 캡슐화를 한다.
	//캡슐화 : 데이타 은닉
	private String name;
	
	public void test() {
		//메서드는 접근지정자, 리턴타입, 메서드명으로 이루어진다.
		//매개변수를 받거나 생략할수 있다.
		//명시된 리턴타입에 맞춰 해당 데이타형을 리턴해줘야한다.
		
		//메서드 내에서 this키워드로 활용하여 자신의 클래스에 해당되는 
		//필드 혹은 메서드 접근이 가능하다.
		
		this.name = "홍길동";
	}
	
	public static void main(String[] args) {
		JavaBasic03 javabasic = new JavaBasic03();
		javabasic.test();
	}

}
package kr.or.ksmart;

class Member{
	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

public class JavaBasicEx04 {

	public static void main(String[] args) {
		String[][] memberInfo = new String[][] {
			{"홍길동","20"},
			{"이순신","21"},
			{"고길동","25"}
		};
		//다차원배열 값 접근하기
		//System.out.println(memberInfo[0][0]);
		
		Member[] memberInfoArray = new Member[memberInfo.length];
		
		/*
		 * 실습4. 위의 회원의 정보가 담긴 다차원 배열이 있다.
		 * memberInfoArray의 객체(Member) 배열에 회원정보를 담아라.
		 * 순서 : memberInfo 반복문 > Member 인스턴스화 > memberInfoArray에 담기
		 */
		
		for(int i=0; i < memberInfo.length; i++) {
			String[] member = memberInfo[i];
			String name = member[0];
			String age = member[1];
			System.out.println(name + " -- " + age);
			
			Member memberClass = new Member();
			memberClass.setName(name);
			memberClass.setAge(age);
			
			memberInfoArray[i] = memberClass;			
		}
		for(int i=0; i < memberInfoArray.length; i++) {
			Member memberClass = memberInfoArray[i];
			System.out.println("memberInfoArray > " + memberClass.getName());
			System.out.println("memberInfoArray > " + memberClass.getAge());
		}
		
	}

}

package kr.or.ksmart;

import java.util.ArrayList;
import java.util.List;

class Score{
	private int avg;
	private int totalScore;
	
	public int getAvg() {
		return avg;
	}
	public void setAvg(int avg) {
		this.avg = avg;
	}
	public int getTotalScore() {
		return totalScore;
	}
	public void setTotalScore(int totalScore) {
		this.totalScore = totalScore;
	}	
}

class MemberScore{
	private Score score;
	public void setScoreList(List<Integer> scoreList) {
		if(scoreList != null) {
			this.score = new Score();
			int totalScore = 0;
			int avg = 0;
			for(int i=0; i < scoreList.size(); i++) {
				totalScore += scoreList.get(i);
			}
			if(totalScore != 0) {				
				avg = totalScore / scoreList.size();
			}
			score.setAvg(avg);
			score.setTotalScore(totalScore);
		}
	}
	public Score getScore() {
		return score;
	}
}


public class JavaBasic05 {

	public static void main(String[] args) {
		
		List<Integer> scoreList = new ArrayList<Integer>();
		scoreList.add(10);
		scoreList.add(20);
		scoreList.add(30);
		
		MemberScore ms = new MemberScore();
		ms.setScoreList(scoreList);
		
		Score score = ms.getScore();
		System.out.println(score.getAvg() + " << Avg");
		System.out.println(score.getTotalScore() + " << TotalScore");

	}

}
package kr.or.ksmart;

import java.util.ArrayList;
import java.util.List;

class MemberInfo{
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

public class JavaBasicEx05 {
	public static void main(String[] args) {
		/*
		 * 실습5. 아래의 회원 정보가 있다.
		 * 회원정보를 MemberInfo 객체에 담고 memberInfoList에 
		 * 저장한 후 결과값을 출력하여라.
		 * 회원정보 : 홍길동, 고길동, 이순신
		 * */
		List<MemberInfo> memberInfoList = new ArrayList<MemberInfo>();
		
		MemberInfo memberInfo = null;
		
		memberInfo = new MemberInfo();
		memberInfo.setName("홍길동");
		memberInfoList.add(memberInfo);
		
		memberInfo = new MemberInfo();
		memberInfo.setName("고길동");
		memberInfoList.add(memberInfo);
		
		memberInfo = new MemberInfo();
		memberInfo.setName("이순신");
		memberInfoList.add(memberInfo);
		
		for(int i=0; i < memberInfoList.size(); i++) {
			MemberInfo m = memberInfoList.get(i);
			System.out.println(m.getName());
		}
		
		
	}
}
package kr.or.ksmart;

import java.util.ArrayList;
import java.util.List;

class ACalculator{
	private int sum;
	public int sum(int n1, int n2) {
		this.sum = n1 + n2;
		return sum;
	}
	public int getSum() {
		return sum;
	}
}

public class JavaBasicEx06 {
	
	public static void main(String[] args) {
		/*
		 * 실습6. ACalculator 클래스를 생성하고 계산을 할 수있는 메서드를
		 * 만들어 계산을 하고 그 결과값을 반환하시오.
		 * 연산 10 + 20
		 * */		
		ACalculator cal = new ACalculator();
		System.out.println(cal.sum(10, 20));
		
		/*
		 * 실습7. ACalculator 클래스를 생성하고 계산을 할 수있는 메서드를
		 * 만들고 아래의 연산을 처리 후에 처리한 내용을 list 객체에 담아라
		 * 연산 10 + 20, 20 + 50, 30 + 40
		 * */
		List<ACalculator> list = new ArrayList<ACalculator>();
		
		ACalculator cal2 = null;
		cal2 = new ACalculator();
		cal2.sum(10, 20);
		list.add(cal2);
		
		cal2 = new ACalculator();
		cal2.sum(20, 50);
		list.add(cal2);
		
		cal2 = new ACalculator();
		cal2.sum(30, 40);
		list.add(cal2);
		
		for(int i=0; i < list.size(); i++) {
			ACalculator acal = list.get(i);
			System.out.println(acal.getSum());
		}
		
	}
}

 

https://programmers.co.kr/learn/courses/17/lessons/805

불러오는 중입니다...

https://wayhome25.github.io/cs/2017/04/17/cs-18-1/ 

 

배열(Array)과 리스트(List) · 초보몽키의 개발공부로그

자바의 배열은 기능적으로 한계가 많습니다. 배열의 크기를 배열을 생성할 때 지정하는 것이나, 배열의 크기를 변경할 수 없는 것은 몹시 불편한 일입니다. 또 배열에서 설정된 엘리먼트의 개수를 알아낼 수 없는 것도 불편합니다. 그렇다고 배열이 쓸모가 없는 것은 아닙니다. 데이터의 크기가 확정적일 때 배열을 사용하는 것이 메모리나 처리속도 면에서 좋습니다. 또한 배열은 다른 데이터 스트럭쳐의 부품이 되기도 합니다. 기능이 최소한일수록 좋은 부품이 될 수 있습니

wayhome25.github.io

https://milhouse93.tistory.com/64

 

[자료구조]Array와 ArrayList 차이 in Java

Java에서의 Array와 ArrayList의 차이를 알아보자. 1. Resizable - Array : Array는 static하다(Data structure의 길이가 고정되어있다). Array를 만든 후 Array의 길이를 마음대로 변경할 수 없다. - ArrayList :..

milhouse93.tistory.com

https://allg.tistory.com/26

 

[자료구조/List] 자바 배열(Array)과 ArrayList 차이점 및 활용

배열(Array)과 ArrayList 차이점 및 활용 1. 배열(Array) 배열의 크기는 한번 정하면, 크기를 변경을 할 수 없습니다. Info[ ] infoArr = new Info[5] 배열 초기화시 메모리에 할당되어 ArrayList보다 속도가 빠..

allg.tistory.com

 

'Diary' 카테고리의 다른 글

200513  (0) 2020.05.13
1  (0) 2020.05.13
200413  (0) 2020.04.13
[Database] 요구사항분석해보기  (0) 2020.04.06

select 쿼리 분리

package kr.or.ksmart.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import kr.or.ksmart.driverdb.DriverDB;
import kr.or.ksmart.dto.Member;
	//04_01 수정화면(한명 회원 정보 조회) 메서드 선언
	//return data type, 입력개수, 매개변수 data type, 처리과정 ?
	public Member mSelectforUpdate (String mid) throws ClassNotFoundException, SQLException {
		System.out.println("04 mSelectforUpdate Mdao.java");
		System.out.println(mid);
		
		Member m = null;		
		
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		DriverDB db = new DriverDB();
		Connection conn = db.driverDbcon();
		System.out.println(conn);		
		pstmt = conn.prepareStatement("select * from tb_member WHERE m_id = ?");
		pstmt.setString(1, mid);
		System.out.println(pstmt + "<-- pstmt");
		rs = pstmt.executeQuery();
		System.out.println(rs + "<-- rs");

		if(rs.next()){
			System.out.println("-------------if 조건문 통과-------------");
			m = new Member();
			m.setM_id(rs.getString("m_id"));
			m.setM_pw(rs.getString("m_pw"));
			m.setM_level(rs.getString("m_level"));
			m.setM_name(rs.getString("m_name"));
			m.setM_email(rs.getString("m_email"));
		
			System.out.println(m.getM_id() + "<- m.setM_id");
			System.out.println(m.getM_pw() + "<- getM_pw");
			System.out.println(m.getM_level() + "<- getM_level");
			System.out.println(m.getM_name() + "<- getM_name");
			System.out.println(m.getM_email() + "<- getM_email");
			System.out.println("-------------if 조건문 끝-------------");
		}
		
		pstmt.close();
		conn.close();
				
		return m;
	}
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ page import = "java.sql.SQLException" %>

<%@ page import="kr.or.ksmart.dao.Mdao"%>
<%@ page import="kr.or.ksmart.dto.Member" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/css/main.css" />
</head>
<body>
<%@ include file="/module/top.jsp" %>
<%@ include file="/module/left.jsp" %>


<%
String send_id = request.getParameter("send_id");
System.out.println(send_id);
System.out.println("-------------수정 화면 코드 시작-------------");
Mdao mdao = new Mdao();
Member m = mdao.mSelectforUpdate(send_id);
System.out.println(m + "m");
System.out.println(m.getM_id() + "getM_id" );
System.out.println(m.getM_pw() + "getM_pw");
System.out.println(m.getM_level() + "getM_level");
System.out.println(m.getM_name() + "getM_name");
System.out.println(m.getM_email() + "getM_email");
System.out.println("-------------이후 화면-------------");
%> 

<%-- 
아이디 : <%= m.getM_id()%><br>
패스워드 : <%=m.getM_pw()%><br>
권한 : <%=m.getM_level()%><br>
이름 : <%=m.getM_name()%><br>
이메일 : <%=m.getM_email()%>
 --%>
<form action="<%= request.getContextPath() %>/mupdate/m_update_pro.jsp" method="post">
<table border="1">
<tr>
	<td>아이디</td>
	<td><input type="text" name="m_id" size="20" value="<%= m.getM_id()%>" readonly></td>
<tr>
<tr>
	<td>암호</td>
	<td><input type="text" name="m_pw" size="20" value="<%= m.getM_pw() %>"></td>
<tr>
<tr>
	<td>권한</td>
	<td><input type="text" name="m_level" size="20" value="<%= m.getM_level() %>"></td>
<tr>
<tr>
	<td>이름</td>
	<td><input type="text" name="m_name" size="20" value="<%= m.getM_name() %>"></td>
<tr>
<tr>
	<td>이메일</td>
	<td><input type="text" name="m_email" size="20" value="<%= m.getM_email() %>"></td>
<tr>
<tr>
	<td colspan="4"><input type="submit" value="회원수정버튼"></td>
</tr>
</table>
</form>
 
 <%@ include file="/module/hadan.jsp" %>
</body>
</html>
 
 
 
 

'JSP' 카테고리의 다른 글

MVC model2  (2) 2020.05.07
200417  (0) 2020.04.17
[JSP + MySQL] jdbc driver분리 / jsp usebean  (0) 2020.04.10
jsp,mysql,java  (0) 2020.04.09

 


이스케이프 시퀀스

package kr.or.ksmart;

public class Javabasic01 {

	public static void main(String[] args) {
		/*
		 * 이스케이프 시퀀스 
		 * 자바의 문자열로 표현할 수 없는 특수 기호 (문자열)을 표현할 때 쓰는 기호
		 */
		
		//쌍따옴표 표기하기
		System.out.println("\"");
		//개행하기(엔터)
		System.out.println("한국스마트정보교육원에\n오신 것을 환영합니다.");
		//수평 탭
		System.out.println("\t한국스마트정보교육원에\n\t\t오신 것을 환영합니다.");
	
		/*
		 * 실습1. 이스케이프 시퀀스를 활용하여 아래의 json 포맷방식을 출력하여라.
		 * 출력할 json : {"userName" : "홍길동", ""userId" : "id001"} 
		 */

		System.out.println("{\"userName\" : \"홍길동\", \"userId\" : \"id001\"}");
	}	
}

 


기본 Data type

package kr.or.ksmart;

public class Javabasic02 {

	public static void main(String[] args) {
		/*
		 * 변수 선언하기
		 * 변수 : 데이터를 저장하기 위하여 만들어진 메모리 공간
		 * (변수를 선언한다 -> 데이터를 저장하기 위해 메모리를 할당한다.)
		 * 
		 * 변수 선언 -> 데이터형 식별자(변수명) = 값;
		 * 
		 * 기본 데이터형은 값이 입력되어야 출력 및 대입이 가능하다.
		 */
		
		//boolean 형은 true of false를 담을 수 있다.
		boolean isCheck = false;
		System.out.println("isCheck : " + isCheck);
		
		//char 형은 문자 1개만 담을 수 있으며 홑따옴표로 시작해서 닫는다.
		char myChar = 'A';
		System.out.println("myChar : " + myChar);
		
		//숫자 표현 int 보다 작은 범위를 사용할 때 (-32768 ~ 32767)
		short myShort = 0;
		System.out.println("myShort : " + myShort);
		
		//숫자 표현 주로 쓰이는 숫자 표현식
		int myInt = 0;
		System.out.println("myInt : " + myInt);
		
		//int 보다 큰 범위의 숫자를 다룰 때 쓰는 숫자 표현식
		long myLong = 0;
		System.out.println("myLong : " + myLong);
		
		//소수점 표현식
		float myFloat = 0.0f;
		System.out.println("myFloat : " + myFloat);
		
		double myDouble = 0.0;
		System.out.println("myDouble : " + myDouble);
		
		//형변환=캐스팅 (값에 의해 기본형의 형이 바뀌는 것)
		int myInt2 = (int) 0.0;
	}

}


키보드 입력

package kr.or.ksmart;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Javabasic03 {

	public static void main(String[] args) throws IOException {
		
		//InputStreamReader 객체화 하면서 인수값 System.in 삽입.
		//System.in : 표준입력장치(키보드)
		InputStreamReader reader = new InputStreamReader(System.in);
		//키보드 입력을 임시적으로 저장할 공간 선언
		BufferedReader br = new BufferedReader(reader);
		//readLine : 사용자에게 키보드 입력을 요구하는 명령어
		System.out.println("숫자를 입력해주세요.");
		System.out.println("숫자를 입력하면 숫자의 합산 값이 나옵니다.");
		int sum = 0;
		for ( int i = 0 ; i < 5; i ++) {
			String str = br.readLine();
			int num = 0;
			if (str != null && !"".equals(str)) {
				//Integer 기본형을 다루는 클래스 중  int를 다루는 클래스이다.
				//기본형을 다루는 클래스를 래퍼클래스라 부른다.
				num = Integer.parseInt(str);
			}
			sum += num;
		}
		System.out.println("합산된 값 : "+sum);
	}

}


package kr.or.ksmart;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaBasicEx01 {

	public static void main(String[] args) throws IOException {
		/*
		 * 실습2. 키보드로 1개의 숫자를 입력받아 입력받은 숫자의 구구단을 출력하여라.
		 * 출력 형식 : 2 x 2 = 4
		 */
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("숫자를 입력하시면 구구단을 출력합니다.\n숫자를 입력하세요.");
		String str = br.readLine();
		System.out.println("===== 구구단 "+str+" 단 =====");
		for ( int i = 1 ; i <= 9 ; i++) {
			int num = 0;
			if( str!=null && !"".equals(str)) {
				num = Integer.parseInt(str);
			}
			System.out.println(str + " X " + i + " = " + num*i);
		}
		System.out.println("==================");
	}
	

}

'JAVA' 카테고리의 다른 글

[Java Basic] 생성자 / 오버로딩  (0) 2020.04.22
[Java Basic] Casting / Array  (0) 2020.04.22
[Java] setAttribute getAttribute 메서드 활용 방법  (0) 2020.03.13
[Java] JAVA Object data type  (0) 2020.03.13

실습1. 부트스트랩을 활용하여 회원가입폼을 작성하고 유효성 검사를 하여라.
폼필드: 아이디, 회원명, 패스워드, 패스워드확인, 이메일, 주소, 휴대전화번호

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="<%=request.getContextPath()%>/resource/bootstrap-3.3.2-dist/css/bootstrap.min.css" rel="stylesheet">
<link href="<%=request.getContextPath()%>/resource/bootstrap-3.3.2-dist/css/bootstrap-theme.min.css" rel="stylesheet">
<link href="<%=request.getContextPath()%>/resource/css/join.css" rel="stylesheet">

<!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js -->
<!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. -->
<!--[if lt IE 9]>
	<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
	<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->

<title>회원가입</title>

<script src="<%=request.getContextPath()%>/resource/js/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
	$(function() {
		$('#joinBtn').click(function() {
			
			var userId = $('#userId');
			var userName = $('#userName');
			var userPw = $('#userPw');
			var pwCon = $('#pwCon');
			var userEmail = $('#userEmail');
			var address = $('#address');
			var phone = $('#phone');
			
			if(userId.val() == ''){
				alert('아이디를 입력해주세요.')
				userId.focus();
				return;
			}
			if(userName.val() == ''){
				alert('회원명을 입력해주세요.')
				userName.focus();
				return;
			}
			if(userPw.val() == ''){
				alert('패스워드를 입력해주세요.')
				userPw.focus();
				return;
			}
			if(pwCon.val() == ''){
				alert('패스워드확인을 입력해주세요.')
				pwCon.focus();
				return;
			}
			if(userPw.val() != pwCon.val()){
				alert('패스워드가 일치하지 않습니다.')
				userPw.val('');
				pwCon.val('');
				pw.focus();
				return;
			}
			if(userEmail.val() == ''){
				alert('이메일을 입력해주세요.')
				userEmail.focus();
				return;
			}
			if(address.val() == ''){
				alert('주소를 입력해주세요.')
				address.focus();
				return;
			}
			if(phone.val() == ''){
				alert('휴대전화번호를 입력해주세요.')
				phone.focus();
				return;
			}
			$('#join').submit();
		});
	});
</script>
</head>
<body>
	<!--
		실습1. 부트스트랩을 활용하여 회원가입폼을 작성하고 유효성 검사를 하여라.
			폼필드: 아이디, 회원명, 패스워드, 패스워드확인, 이메일, 주소, 휴대전화번호
	  -->
	  
<div class="container-fluid" >
	<div class="join-title"><h1>JOIN</h1></div>
	<div class="row">
		<div class="col-sm-6 col-sm-offset-3">
			<div class="panel panel-default">
				<div class="panel-body">
					<form id="join" action="<%=request.getContextPath()%>/join.jsp" method="post">
						<div class="form-group">
							<label for="userId">아이디</label>
							<input type="text" id="userId" name="userId" class="form-control" placeholder="아이디">
						</div>
						<div class="form-group">
							<label for="userName">회원명</label>
							<input type="text" id="userName" name="userName" class="form-control" placeholder="회원명">
						</div>
						<div class="form-group">
							<label for="userPw">패스워드</label>
							<input type="password" id="userPw" name="userPw" class="form-control" placeholder="패스워드">
						</div>
						<div class="form-group">
							<label for="pwCon">패스워드확인</label>
							<input type="password" id="pwCon" name="pwCon" class="form-control" placeholder="패스워드확인">
						</div>
						<div class="form-group">
							<label for="userEmail">이메일</label>
							<input type="text" id="userEmail" name="userEmail" class="form-control" placeholder="이메일">
						</div>
						<div class="form-group">
							<label for="address">주소</label>
							<input type="text" id="address" name="address" class="form-control" placeholder="주소">
						</div>
						<div class="form-group">
							<label for="phone">휴대전화번호</label>
							<input type="text" id="phone" name="phone" class="form-control" placeholder="휴대전화번호">
						</div>
						<button type="button" id="joinBtn" class="btn btn-info btn-lg btn-block">JOIN</button>
					</form>
				</div>
			</div>
		</div>
	</div>
	<div class="row">
		<div class="footer-text">
			ksmart.or.kr 한국스마트정보교육원 35기
		</div>
	</div>
</div>

<script src="<%=request.getContextPath()%>/resource/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
</body>
</html>
@charset "UTF-8";
body{background-color: #64D6FF;}
.join-title{text-align: center; margin-top: 40px; margin-bottom: 25px; color: #ffffff;}
.footer-text{text-align: center; color: #ffffff;}

+ Recent posts