lang/java

자바 데이터 타입

C/H 2013. 7. 8. 07:00
자바 데이터 타입
  • 기본 타입
    • 정수
      • byte 1 byte
      • short 2 byte
      • int 4 byte
      • long 8 byte
      • char 2 byte
    • 부동 소수점
      • float 4 byte
      • double 8 byte
    • 불리언

      boolean 정해져 있지 않음

  • 참조 타입
    • 배열 타입 
      char c[]; 
      char[] c; 
      int i[]; int[] i;
      loing l[]; login[] l; 
      
      c = new char[10];	// c[0] ~ c[9], 2 byte * 10 
      i = new ing[10];	// i[0] ~ i[9], 4 byte * 10 
      l = new long[10];	// l[0] ~ l[9], 8 byte * 10 
      calss Ex3_1 { 
      	public static void main( String args[] ){ 
      		int i_arr[];	 // 1차원 배열 
      		i_arr = new int[5]; 
      		i_arr[0] = 10; 
      		i_arr[1] = 20; 
      		i_arr[2] = 30; 
      		i_arr[3] = i_arr[0];
      		i_arr[4] = i_arr[1] + i_arr[2]; 
      //		int i_arr2[][] = new int[2][3];	// 다차원 배열 
      
      		System.out.println("i_arr[0] = " + i_arr[0] );
      		System.out.println("i_arr[1] = " + i_arr[1] );
      		System.out.println("i_arr[2] = " + i_arr[2] );
      		System.out.println("i_arr[3] = " + i_arr[3] );
      		System.out.println("i_arr[4] = " + i_arr[4] );
      	}
      } 
    • 클래스 타입 
      같은 타입의 변수들을 그룹으로 묶는 것이 배열타입이라며 클래스 타입은 여러 타입의변수와 메소드를 그룹으로 묶어서 새롭게 정의한 사용자 정의 타입.
      class PointXY{ 
      	int x, y; 
      	PrintXY( int x, int y ){ 
      		this.x = x; this.y = y; 
      	}
      	void setX( int x ){
      		this.x = x;
      	} 
      	void setY( int y ){
      		this.y = y;
      	}
      	void moveXY( int x, int y ){
      		this.x += x;
      		this.y += y;
      	}
      }
    • 인터페이스 타입
      여러 클래스 타입에서 공통으로 사용하는 상수와 메소드를 따로 분리하여 추상화시킨 타입니다. 클래스 타입과 유사하지만, 데이터 멤버에 상수만 사용할 수 있고 멤버 메소드를 내용없이 선언만 한다.
      // 인터페이스 타입 정의
      // Shape.java 저장, Shape.class 컴파일 
      interface Shape{
      	void getArea();
      }
      
      // 구현 1
      class Triangle implements Shape {
      	int x, y;
      	double area;
      	Triangle( int x, int y ){
      		this.x = x;
      		this.y = y;
      	}
      	public void getArea(){
      		this.area = this.x * this.y * 0.5;
      	}
      }
      
       // 구현 2
      class Rectangle implements Shape{
      	int x, y;
      	double area;
      	Rectangle( int x, int y ){
      		this.x = x; this.y = y;
      	}
      	public void getArea(){
      		this.area = this.x * this.y;
      	}
      }
      
      Shape shape1 = new Triangle( 10, 20 );
      Shape shape2 = new Rectanble( 10, 20 );
    • 열거 타입
      표현할 테이터가 정해진 수의 값만을 가진다. 요일 : 월, 화, 수, 목, 금, 토, 일 
      // Week.java, Week.class 생성 
       // 자바 컴파일러는 열거타입도 인터페이스 타입과 마찬가지로 클래스 파일로 처리한다. 
      enum Week {
      	MON, TUE, WED, THU, FRI, SAT, SUM 
      }
      
      // 사용 
      class test {
      	public static void main( String[] args ){
      		Week myWeek = Week.FRI;
      		Week yourWeek = Week.SAT;
      		System.out.printf("My special day : (%s) %n", myWeek);
      		System.out.printf("Your special day : (%s) %n", yourWeek); 
      	}
      }

* 기본타입과 참조 타입비교

class Point {
	int x, y;

	Point(int x, int y) {
		this.x = x;
		this.y = y;
	}
}

public class Ex3_8 {
	public static void main(String[] args) {
		int i = 100;    // 기본타입
		int j = i;
		System.out.printf("i = (%d) %n", i);
		System.out.printf("j = (%d) %n", j);
		
		Point p1 = new Point( 10, 20 );    // 참조타입
		Point p2 = p1;
		System.out.printf("p1 = (%d, %d) %n", p1.x, p1.y );
		System.out.printf("p2 = (%d, %d) %n", p2.x, p2.y );
		
		i = 300;
		System.out.printf("i = (%d) %n", i);
		System.out.printf("j = (%d) %n", j);
		
		p1.x = 30;
		System.out.printf("p1 = (%d,  %d) %n", p1.x, p1.y );
		System.out.printf("p2 = (%d,  %d) %n", p2.x, p2.y );
	}
}


반응형

'lang > java' 카테고리의 다른 글

온라인에서 자바를 배울수 있는 사이트 10가지  (0) 2014.10.06
Spring  (0) 2013.07.17
우분투 java  (0) 2013.07.01
java zip 파일 java.lang.IllegalArgumentException  (0) 2011.05.24
JAVA-Struts 강좌 링크  (0) 2008.08.13