본문 바로가기
JAVA SE/이론 및 개념

[20.07.16/Day_07] Java SE / String API, Overloading

by 파프리카_ 2020. 7. 16.
728x90
반응형

** 자바 클래스명 관례 **
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/

 

Java Platform SE 8

 

docs.oracle.com

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

 

728x90
반응형