[Java] Chap1 ~ Chap5

Seunghee Lee·2022년 12월 5일
0

Java

목록 보기
1/9
post-thumbnail

1. 문자열

  • 문자열 선언
String[] str = "hello";
  • 문자열 index 접근
str.charAt(1);	// e
  • 문자열 비교
String str1 = "hello";
String str2 = "bye";

str1.equal(str2)	// str1 문자열이 str2와 같은지 비교



2. 배열

  • 1차원 배열 선언
int[] arr = {1, 2, 3};
  • 다차원 배열 선언
int[][] scores = {{1, 2}, {3, 4}};
  • index 접근
arr[0];		// 1
  • new 연산자로 배열 생성
    🤔 new 연산자 ?
    = 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶을 때 사용
1차원 배열일 경우

int[] arr = new int[3];		// int[0] ~ int[2] 까지 값이 저장될 수 있는 공간이 생김
✅ 다차원 배열일 경우

int[][] scores = new int[2][];

scores[0] = new int[2];	// scores[0][1] ~ scores[0][2] 를 가짐
scores[1] = new int[3];	// scores[0][1] ~ scores[0][3] 를 가짐
  • 배열길이
str.length;
  • 배열 복사
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

- src = 원본 배열		srcPos = src에서 복사할 시작 인덱스
- dest = 저장할 배열		destPos = dest에 붙여넣을 시작 인덱스
- length = 복사할 개수



3. 매개변수 String[] args - 커맨드 라인 입력

🤔 String[] args 가 필요한 이유 ?

☞ "java class"로 프로그램을 실행하면 JVM은 길이가 0인 String 배열을 먼저 생성하고, main() 메소드를 호출할 때 매개값으로 전달한다.

String args[] = {};	// args는

public static void main (String[] args){ .. }	// main()메소드 호출 시 전달됨

☞ 만약 class 뒤에 공백으로 구분된 문자열 목록을 주고 실행하면, 문자열 목록으로 구성된 String[] 배열이 생성되고 main() 메소드를 호출할 때 매개값으로 전달된다.

String args[] = {문자열1, 문자열2, 문자열3 ... };	// args는

public static void main (String[] args){ .. }	// main()메소드 호출 시 전달됨



4. 열거 타입

🤔 열거 타입 ?
= 한정된 값만을 갖는 데이터 타입
= 몇 개의 열거 상수 중에서 하나의 상수를 저장하는 데이터 타입

✅ 열거 타입 사용

(1) 열거 타입 이름 정하고 소스파일 (.java) 생성
ex) Week.java

(2) 열거 타입 선언

이때, 열거 상수는 모두 대문자로 작성해야 한다 !

public enum 열거타입이름 { ... }

ex)

public enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, ... }
  • 열거 타입 변수
    - 열거 타입는 하나의 데이터 타입이므로, 변수를 선언하고 사용해야 한다.
    ex) Week today = Week.SUNDAY; → today 열거 변수에 열거 상수 SUNDAY를 저장

✅ 열거 객체 메소드

⚡ name( ) 메소드

= 열거 객체가 가지고 있는 문자열을 리턴한다.
ex)

Week today = Week.SUNDAY;
String name = today.name();

today가 참조하는 열거 객체에서 name() 메소드를 호출 → 문자열 얻어낸다.
name() 메소드는 열거 객체 내부의 문자열인 "SUNDAY"를 리턴 → name 변수에 저장한다.

⚡ ordinal( ) 메소드

= 전체 열거 객체 중 몇 번째 열거 객체인지 알려준다. (※ 0번째부터 시작)
ex)

Week today = Week.SUNDAY;
int ordinal = today.ordinal();	// 6

⚡ compareTo( ) 메소드

= 매개값으로 주어진 열거 객체를 기준으로 전후로 몇 번째 위치하는 지를 비교한다.
※ 매개값의 열거 객체보다 순번이 빠르다면음수 / 늦으면양수 리턴
ex)

Week day1 = Week.SUNDAY;
Week day2 = Week.WEDNESDAY;

int result1 = day1.compareTo(day2);	// 2
int result2 = day2.compareTo(day1);	// -2

⚡ valueOf( ) 메소드

= 매개값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴한다.
ex)

Week weekDay = Week.valueOf("SATURDAY");

⚡ values( ) 메소드

= 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴한다.
ex)

Week[] days = Week.values();

for(Week day : days){
	System.out.println(day);	// 순번대로 객체 상수가 출력된다. ... MONDAY TUESDAY ...
}

[code]

public class test{
    public enum Week{
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }

    public static void main (String[] args){
        //name 메소드
        Week today = Week.SUNDAY;
        String name = today.name();
        System.out.println(name);

        //ordinal 메소드
        int ordinal = today.ordinal();
        System.out.println(ordinal);

        //compareTo 메소드
        Week day1 = Week.MONDAY;
        Week day2 = Week.WEDNESDAY;

        int result1 = day1.compareTo(day2);
        int result2 = day2.compareTo(day1);

        System.out.println(result1);
        System.out.println(result2);

        //valueOf 메소드
        if(args.length == 1){
            String strDay = args[0];
            Week weekDay = Week.valueOf(strDay);

            if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY){
                System.out.println("주말 이다 !");
            } else {
                System.out.println("평일 이다 ...");
            }
        }

        //values() 메소드
        Week[] days = Week.values();
        for(Week day : days){
            System.out.println(day);
        }
    }
}

profile
자라나라 개발개발 ~..₩

0개의 댓글