Java practice_240109

Choi Suyeon·2024년 1월 9일
0

Escape Character(특수문자)

: 문자열 안에서 사용하는 기능을 가진 문자.

  • \로 시작
  • 제공되는 특수문자 이외의 문자를 사용하면 error발생.

문법

\n 줄변경*		"문자열\n문자열"
\t 탭			"문자열\t문자열"
\' 홑 따옴표 	"문자열\`문자열\`"
\" 쌍 따옴표* 	"문자열\"문자열\""
\\ \			"문자열\\문자열\\"
\b backspace	"문자열\b"
\f 프린터의 한 줄 변경	"\f"

Variable Arguments(가변 인수)

: parameter는 하나이지만, 입력되는 값이 동적일 때 사용.

  • JDK1.5부터 지원.
  • System.out.printf(), System.out.format() method에 적용.
  • 매개변수가 여러 개 정의되는 경우 V.A는 항상 제일 마지막에만 기술할 수 있다.
  • V.A는 method안에서 배열로 처리된다.

문법

  • 데이터형 ... 변수명
  1. method 선언
    public void method(데이터형 ... 변수명){
    //V.A의 변수명은 배열로 처리된다.
    //배열은 반복문을 사용하여 처리(주로 for문)
    }

  2. 호출
    일반적인 메소드는 parameter 데이터형과 개수가 일치해야 한다.
    그러나 V.A는 데이터형만 일치한다면 개수는 상관없다.

  • 객체명.method명();
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], "자바", "자바") => [        자바][자바        ]

OOP(Ovject Oriented Programming)

:객체를 만들고 사용하는 것을 권하는 언어

  • 현업 업무를 객체로 보고, 그 사물을 컴퓨터 세계로 구현(개발)하기 적합한 언어.
    대규모 시스템 개발에 적합(업무가 객체로 구분되어 업무를 나눠 개발하기 좋음.)
  • 3가지 특징(1. 상속, 2. 다형성, 3. 캡슐화)

class

  • 설계도

  • 종류 : class, interface, abstract class, inner class, nested class, local class, anonymous inner class

  • 참조형 데이터 형 : 값은 메모리의 다른 곳에 생성되고, 그 시작 주소를 저장하는 데이터 형. 크기를 알 수 없다.
    사용자 정의 자료형 : 자바에서 제공하는 데이터 형을 조합하여 새로운 이름의 데이터 형을 만드는 것.

  • 객체를 생성할 때 사용.(생성된 객체가 저장할 수 있는 값과 기능을 정의.)
    객체화 하여 사용.
    클래스명 객체명 = new 클래스명(); // new는 객체생성용 키워드

문법

작성순서 :
대상선정 -> 추상화(객체모델링)(-공통특징 추출) -> 클래스 작성 -> 객체 생성(객체화) -> 객체 사용

class Diagram

: 클래스의 구조와 관계를 손쉽게 파악하기 위해 도식화한 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(){
}


Setter method

: private으로 설정된 변수에 값을 넣는 일을 하는 method**

문법

  • 접근지정자는 public 으로, 반환형은 void, method명 set을 접두어로 사용하고,
    변수명을 붙여서 만든다.
    매개변수는 데이터 형만 instance 변수와 같으면 된다.
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;
}

Getter method

: private으로 설정된 변수에 값을 얻는 일을 하는 method 작성

문법

  • 접근지정자는 public 으로, 반환형은 인스턴스 변수와 동일하게 설정하고, method명 get을 접두어로 사용하고, 변수명을 붙여서 만든다.
    매개변수는 정의하지 않는다.(인수 안 받음.)
private int age; //instance variable

public int getAge(){
	return age;
}

public double height;

public double getHeight(){
	return height;
}

0개의 댓글