300x250
기본 자료형
자료형(Type)이란 ?
자료형은 기본 / 참조 자료형으로 나누어 집니다.
자료형을 통해 데이터의 속성을 정의하고 사용자나 컴퓨터는 데이터가 어떤 속성인지 알 수 있음.
기본 자료형은 메모리 크기가 명확하고 변동이 없으나, 참조 자료형은 클래스 타입으로 변수를 선언하기 때문에
그때그때 크기가 달라지기 때문에 크기에는 크게 의미가 없습니다.
여러가지 데이터들이 모여 복잡한 데이터로 인해 기본 자료형에 비해 크기가 큽니다.
구분 | 자료형 | 크기 | 범위 |
문자형 | char | 2byte | 0 ~ 65,535 |
정수형 | byte | 1byte | -128 ~ 127 |
short | 2byte | -32768 ~ 32767 | |
int | 4byte | -2147483648 ~ 2147483647 | |
long | 8byte | -9223372036854775808 ~ 9223372036854775807 | |
실수형 | float | 4byte | 1.4E-45 ~ 3.4028235E38 |
double | 8byte | 4.9E-324 ~ 1.7976931348623157E308 | |
논리형 | boolean | 1bit | true, false |
1. 정수형 )
정수형의 대표적인 자료형은 int, long 이다. (byte, short 등 있지만 잘 사용하지 않는다.)
byte 혹은 short의 변수가 연산을 하게 되면 연산의 결과는 int형이 된다.
// 사용법
int a = 1234;
int b = 34;
System.out.println(a - b);
2. 실수형 )
소수점의 수를 저장하기 위한 자료형
실수의 기본 타입은 double형이므로 float형에서는 알파벳 F를 붙여 float 형임을 명시해야함
// 사용법
float pi = 3.14F;
double morePi = 3.14159265358979323846;
3. 문자형 )
한 개의 문자 값에 대한 자료형은 char를 이용한다.
주의 할 점은 위와같이 문자값을 ' ' 를 사용하여 표시한다.
// 사용법
char a = 'a'; // 문자로 표현
char b = 97; // 아스키코드로 표현
char c = '\u0061'; // 유니코드로 표현
System.out.println(a); // a 출력
System.out.println(b); // b 출력
System.out.println(c); // c 출력
4. 논리형 )
다른곳은 0과 1로 표현을 하지만 자바에서는 그렇지 않다.
참 거짓을 표현하기 위한 자료형, false : 0 / true : 1
// 사용법
System.out.println(true);
System.out.println(false);
참조 자료형
참조 자료형(Refernce Data Type)
기본형을 제외한 모든 타입은 참조 자료형이다.
클래스 타입, 인터페이스 타입, 배열 타입, 스트링 타입 등이 있다.
값이 아닌 객체의 주소를 가지고 있는 자료형.
사용자에 의해 만들어진 클래스를 자료형으로 선언 하는 경우.
연습해보기
학생 클래스(Student)에 과목 이름을 정의하고
과목 클래스(Subject)에 과목 점수를 분리한다.
과목(Subject)클래스를 참조 자료형으로 학생(Student)클래스에 정의하여 사용함.
과목 클래스(Subject)
public class Subject {
String subjectName;
int score;
}
학생 클래스(Student)
- 참조형 변수는 클래스 타입이라 클래스의 기능을 사용하기 위해 초기화를 해야 함.
public class Student {
int studentID;
String studentName;
Subject korea; //참조 자료형 타입으로 변수를 선언. Subject 클래스가 참조 자료형 타입으로, Student의 맴버가 됨.
Subject math;
public Student(int id, String name) {
studentID = id;
studentName = name;
korea = new Subject(); //인스턴스를 생성, 참조 자료형 초기화.
math = new Subject();
}
public void setKoreaSubject(String name, int score) {
korea.subjectName = name;
korea.score = score;
}
public void setMathSubject(String name, int score) {
math.subjectName = name;
math.score = score;
}
public void showStudentScore() {
int total = korea.score + math.score;
System.out.println(studentName + " 학생의 총점은 " + total + " 점 입니다. " );
}
}
Main 클래스
public class codingNight {
public static void main(String[] args) {
Student studentKim = new Student(100, "Kim");
studentKim.setKoreaSubject("국어", 88);
studentKim.setMathSubject("수학", 90);
Student studentKwon = new Student(101, "Kwon");
studentKwon.setKoreaSubject("국어", 60);
studentKwon.setMathSubject("수학", 80);
studentKim.showStudentScore();
studentKwon.showStudentScore();
}
}
300x250
'Progamming > Java' 카테고리의 다른 글
[JAVA] 별찍기 - for문(반복문),중첩 for문 (0) | 2023.02.13 |
---|---|
Java(자바) - 연산자 3. 비트 연산자 & 시프트 연산자 (0) | 2022.10.14 |
Java(자바) - 연산자 2. 비교 연산자 & 논리 연산자 (0) | 2022.10.13 |
Java(자바) - 연산자 1. 연산의 종류 & 대입연산자 (1) | 2022.10.13 |