** 자바 클래스명 관례 **
1. 대문자로 시작한다.
2. 합성어가 이어질때는 대문자로 시작한다.
(예제)
- VO : Value Object
- Service : 비즈니스 로직을 담당하는 객체
- DAO : Data Access Object 데이터 제어 객체
- DTO : Data Transfer Object 데이터 전송 객체
[ String API ]
API( Application Programming Interface)란 ?
: 어플리케이션 개발의 편의를 위해 제공하는 인터페이스
: 통로와 같다 !
* 참고 사이트 : https://docs.oracle.com/javase/8/docs/api/
Library 라이브러리 란?
: 재사용 가능한 클래스 또는 기능의 모임
** API와 Library의 차이점
> Library는 사용자가 프로그램 내에 소유하여 사용할 수 있다.
> API는 현재 소유하고 있지 않더라도, API를 사용하면 그 기능을 사용가능 (빌려쓰는 개념 / interface)
java.lang.String
: java.lang package 기본으로 사용할 수 있는 package다.
* java.lang.String으로 표기할 필요없이 String만 입력해도 java.lang.String으로 인식된다.
java.lang.String = String
String str = "강상훈, 강지훈, 강희석, 고병철";
.split(a)
문자열을 "a" 기준으로 구분해서 배열로 관리
String sa[] = str.split(", ");
for (int i=0; i<sa.length; i++) {
System.out.println(sa[i]);
}
/* 출력값 :
* 강상훈
* 강지훈
* 강희석
* 고병철
*/
.length
문자열이 몇개의 문자로 구성되어있는지 확인
String name1 = "강하늘";
System.out.println(name1.length());
/* 출력값
* 3
*/
.startsWith(a)
"a"으로 시작하는 문자열인지 여부 확인
반환 : true, false
System.out.println(name1.startsWith("강"));
//true
System.out.println(name1.startsWith("김"));
//false
.equals()
자바 문자열 비교시에 이용 (==을 이용하면 오류남)
반환 : true, false
String angel = "아이유";
String angel2 = "서예지";
System.out.println(angel == angel2); //false
String angel3 = new String("아이유");
System.out.println(angel3); // 아이유
System.out.println(angel == angel3); //false
// 같은 문자여도 == 은 오류난다.
// 자바 문자열 비교시에는 반드시 String에서 제공하는
// equals() 메서드를 이용해야한다 !
System.out.println(angel.equals(angel3)); // true
[ Overloading ]
Method Overloading 메서드 오버로딩
: 동일한 메서드 이름으로 메서드로 다양한 매개변수를 다르게 하는 기법
: 사용 목적) 사용자의 편의성을 증대하기 위해 사용
* 메서드 오버로딩 예제)
package step5;
class Person{
public void eat() {
System.out.println("먹다");
}
public void eat(String name) {
System.out.println(name+"먹다");
}
public void eat(int count) {
System.out.println(count+"번 먹다");
}
// public void eat(int a){} //complie error
public void eat(String name, int count) {
System.out.println(name+" "+count+"번 먹다");
}
}
public class TestOverloading1 {
public static void main(String[] args) {
Person p = new Person();
p.eat();
p.eat(3);
p.eat("짬뽕");
p.eat("우동",3);
}
}
/* 출력결과
* 먹다
* 3번 먹다
* 짬뽕먹다
* 우동 3번 먹다
*/
* 매개변수의 1. 순서 2. 타입 3. 개수 가 다르면 오버로딩으로 인식한다.
Constructor Overloading 생성자 오버로딩
: 다양한 매개변수를 입력받기 위해 생성자를 여러 개 정의한다.
> 클래스 내의 같은 생성자(같은 이름을 가진)에서도 여러 방법으로 객체를 생성할 수 있다.
* 생성자 오버로딩 예제)
ackage step6;
class MemberVO {
private String id; //*필수입력 항목
private String password; //*필수입력 항목
private String hobby; //선택입력 항목
// 1. 필수입력값만 받는 생성자
public MemberVO(String id, String password) {
this.id = id;
this.password = password;
}
// 2. 모든 입력값을 받는 생성자
public MemberVO(String id, String password, String hobby) {
this.id = id;
this.password = password;
this.hobby = hobby;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
}
public class TestOverloading2 {
public static void main(String[] args) {
//1. 필수입력값만 넣은 객체
MemberVO vo1 = new MemberVO("밀크", "미양크");
System.out.println(vo1.getId()+" "+vo1.getPassword());
//2. 모든 항목을 넣은 객체
MemberVO vo2 = new MemberVO("예우", "이야오", "뜀박질");
System.out.println(vo2.getId()+" "+vo2.getPassword()+" "+vo2.getHobby());
}
}