본문 바로가기

STUDY/Java

[JAVA] 데이터 타입 - 기본타입, 참조타입

 
 

01 기본 타입(원시 타입: Primitive Type)

- 실제 값을 변수 안에 저장

 

1. 정수 타입

(1) byte

(2) char

(3) short

(4) int

(5) long

 

2. 실수 타입

(1) float

(2) double

 

3. 논리 타입

(1) boolean

 


 

02 참조 타입(Reference Type)

- 메모리의 번지를 값으로 가짐, 번지를 통해 객체를 참조

 

1. 배열 타입

- 배열: 같은 형의 자료들을 모은 저장 공간, 배열도 객체임

- 변수: 1개의 값만 기억

 

ex) 객체끼리 비교하기 (equals 메소드)

package com.test;

import java.util.Scanner;

public class Test{
	
	public static void main(String[] args){
		String mountain [] = {"한라산", "백두산", "광교산", "설악산", "소백산", "남산"};
		Scanner sc = new Scanner(System.in);
		System.out.print("이름을 입력하세요: ");
		String input = sc.next();
		
		for(int i=0; i<mountain.length; i++) {
			if(mountain[i].equals(input)) {
				System.out.println(input + " 이름은 존재한다");
				break;
			}
		}
	}
}
 

[결과화면]


ex) 객체끼리 비교하기 (contains 메소드)

package com.test;

import java.util.Scanner;

public class Test{
	public static void main(String[] args){
		String mountain [] = {"한라산", "백두산", "광교산", "설악산", "소백산", "남산"};
		Scanner sc = new Scanner(System.in);
		System.out.print("이름을 입력하세요: ");
		String input = sc.next();
		boolean result = false;
		
		for(int i=0; i<mountain.length; i++) {
			if(mountain[i].contains(input)) { // 결과가 true, false로 반환됨
				result = true; 
				break;
			}
		}
		if(result)
			System.out.println(input + " 이름은 존재한다");
		else
			System.out.println(input + " 이름은 존재하지 않는다");
	}
}
 

[결과화면]

 


 

* 빠른 for문 (향상된 for문)

ex) for(클래스명 임의변수 : 객체명(배열명))

public class Sample{
	public static void main(String[] args){
		String mountain [] = {"한라산", "백두산", "광교산", "설악산", "소백산", "남산"};
		for(String k : mountain){
			System.out.print(k + "  ");
		}
	}
}
 

① 4행: 배열에서 가져올 첫번째 값이 존재하는지 평가

② 5행: 존재하면 임의변수에 저장 후 처리문을 실행

③ 4행: 다시 루프를 돌아 배열의 다음 값이 존재하는지 평가

④ 5행: 존재하면 임의변수에 저장 후 처리문을 실행 -> 반복

 

[결과화면]

 


 

2. 열거 타입 <Enum>

- 한정된 값만을 갖는 데이터 타입 (enumeration type)

- ex) 요일, 성별, 월, 계절 등


ex) 요일 출력하기

package com.test;

import java.util.Calendar;

public class Test{
	enum week{
		MONDAY,
		TUESDAY,
		WEDNESDAY,
		THURSDAY,
		FRIDAY,
		SATURDAY,
		SUNDAY
	}
	public static void main(String[] args){
		week today = null;
		Calendar cal = Calendar.getInstance();
		int week = cal.get(Calendar.DAY_OF_WEEK);
		
		switch(week) {
		case 1: 
			today = Test.week.SUNDAY; break;
		case 2:
			today = Test.week.MONDAY; break;
		case 3:
			today = Test.week.TUESDAY; break;
		case 4:
			today = Test.week.WEDNESDAY; break;
		case 5:
			today = Test.week.THURSDAY; break;
		case 6:
			today = Test.week.FRIDAY; break;
		case 7:
			today = Test.week.SATURDAY; break;
		}
		System.out.println("오늘은 " + today + "입니다.");
		
		if(today == Test.week.MONDAY)
			System.out.println("월요일에는 축구를 합니다.");
		else
			System.out.println("오늘은 열심히 자바 공부를 합니다.");
	}
}
 

[결과화면]

 

 

3. 클래스

- ex) String 참조 변수

* name 이라는 String 변수는 홍길동을 저장하면서 메소드(name. ~)도 이용 가능

* name은 객체이며 참조 변수

 

 


 

ex) concat 메소드

package com.test;

public class Test{
	public static void main(String[] args){
	String name = "홍길동";
	String temp = name.concat("은 홍길동전의 주인공이다");
	System.out.println(temp);
	}
}
 

① 6행: concat 문자열 합치기

 

[결과화면]

 


 

 

4. 인터페이스