: 문자열 안에서 사용하는 기능을 가진 문자.
\n 줄변경* "문자열\n문자열"
\t 탭 "문자열\t문자열"
\' 홑 따옴표 "문자열\`문자열\`"
\" 쌍 따옴표* "문자열\"문자열\""
\\ \ "문자열\\문자열\\"
\b backspace "문자열\b"
\f 프린터의 한 줄 변경 "\f"
: parameter는 하나이지만, 입력되는 값이 동적일 때 사용.
method 선언
public void method(데이터형 ... 변수명){
//V.A의 변수명은 배열로 처리된다.
//배열은 반복문을 사용하여 처리(주로 for문)
}
호출
일반적인 메소드는 parameter 데이터형과 개수가 일치해야 한다.
그러나 V.A는 데이터형만 일치한다면 개수는 상관없다.
public class UseVariableArguments {
public void testVA(int... i) {
// parameter는 참조형 데이터 형인 배열로 처리된다.
// System.out.println(i);//주소만 출력 [I@3d012ddd
// 배열을 반복문으로 처리한다.
for (int j = 0; j < i.length; j++) {
System.out.println(i[j]);
} // end for
} // testVA
public static void main(String[] args) {
UseVariableArguments uva = new UseVariableArguments();// 객체화 : class명 객체명 = new class명();
// V.A는 호출할 때 데이터형만 일치하면 값의 개수에 상관없이 호출가능
// uva.testVA();//주소만 출력 [I@3d012ddd
// uva.testVA(2024);//2024 출력
uva.testVA(2024, 1, 2, 10);
}
}
매개변수가 여러 개 정의된 경우 V.A는 가장 마지막에만 정의할 수 있다.
public void test(int i, int ... j)
error
public void test(int ... i, int j)
public void test(int i, int ... j)
//V.A는 가장 마지막에만 정의할 수 있다.
public void test(int i, char c, String s, double d, int ... j) {
}
//error : The variable argument type int of the method test2 must be the last parameter
// public void test2(int i, char c, String s, int ... j, double d) {
// }
V.A를 도입한 console 출력 method
: System.out.printf(), System.out.format()
출력 메시지와 출력 값을 구분하여 작성할 수 있다.
format(String format, Object... args) //똑같다.
printf(String format, Object... args)//(출력 메시지, 출력 값)
<값 출력 후 줄 변경을 하지 않는다. 줄변경 필요할 때 \n>
System.out.printf("출력 메시지 출력 문자", 값,,,);
System.out.format("출력 메시지 출력 문자", 값,,,);
<출력 문자와 값의 개수는 같아야 한다.>
System.out.printf("오늘은 %d년 %d월 %d일 입니다.\n", 2024, 1, 9);
: %로 시작하는 문자
정수 %d "%d" - 정수 값 출력
"%자릿수d" - 자리를 설정하고 출력
"%6d", 1221 - 6칸 잡고 1221출력 [ 1221] == [__1221]
"%-6d", 1221 - 6칸 잡고 1221출력 [1221 ] == [1221__]
문자 %c "%c" - ([%c],'A') => [A]
"%자릿수c" - ([%5c][%-5c], 'A', 'A') => [ A][A ]
불린 %b "%b" - ([%b],true) => [true]
"%자릿수b" - ([%5b][%-5b], true, true) => [ true][true ]
실수 %f "%f" - [%f], 2024.0109 => [2024.010900]
"%전체자릿수.실수자릿수f"
- ([%10.2f], 2024.0109) => [ 2024.01] == [___2024.01]
"%실수자리수f" - ([%.2f], 2024.0109) => [2024.01]
문자열 %s "%s" - ([%s], "자바") => [자바]
"%자릿수s" - ([%10s][%-10s], "자바", "자바") => [ 자바][자바 ]
:객체를 만들고 사용하는 것을 권하는 언어
설계도
종류 : class, interface, abstract class, inner class, nested class, local class, anonymous inner class
참조형 데이터 형 : 값은 메모리의 다른 곳에 생성되고, 그 시작 주소를 저장하는 데이터 형. 크기를 알 수 없다.
사용자 정의 자료형 : 자바에서 제공하는 데이터 형을 조합하여 새로운 이름의 데이터 형을 만드는 것.
객체를 생성할 때 사용.(생성된 객체가 저장할 수 있는 값과 기능을 정의.)
객체화 하여 사용.
클래스명 객체명 = new 클래스명(); // new는 객체생성용 키워드
작성순서 :
대상선정 -> 추상화(객체모델링)(-공통특징 추출) -> 클래스 작성 -> 객체 생성(객체화) -> 객체 사용
: 클래스의 구조와 관계를 손쉽게 파악하기 위해 도식화한 diagram.
+ : public 관계(직선)
# : protected 상속관계(화살표)
~ : default 구현관계(점선빈화살표)
- : private
+Test
+i:int
#j:double
~k:char
-l:String
+test(int):void
+static name() : String
-print():void
=>
public class Test{
public int i;
protected double j;
char k;
String l;
}
public void test(int age){
}
public static String name(){
}
private void print(){
}
: private으로 설정된 변수에 값을 넣는 일을 하는 method**
private int age; //instance variable
public void setAge(int age){
this.age=age;
}
// age가 myAge로 바뀌면?
private int myAge;
public void setMyAge(int myAge){
this.myAge=myAge;
}
: private으로 설정된 변수에 값을 얻는 일을 하는 method 작성
private int age; //instance variable
public int getAge(){
return age;
}
public double height;
public double getHeight(){
return height;
}