JAVA

JAVA 총 정리 1탄 ( Type)

FnMask 2020. 11. 23. 06:10

JAVA=OOP(Object Oriented Programming)

자바는 객체를 가지고 기능별로 객체를 나누어 프로그램을 만드는 '객체지향 프로그래밍'입니다.

 

객체란?

(Object==Instance)라고 하고

class를 가지고 메모리에 직접 구현한 구현체를 뜻합니다.

 

Class란?

Java이 기본 단위이자 객체를 만들기 위해 필요한 설계도 입니다.

public class Classtest{
	#filed : 속성
	#contructor : 객체생성/필드 초기화
	#method : 기능
}

 

특징 4 가지

1. 추상화 (abstaction) 

여러 객체들을 하나의 추상적인 큰 개념으로 묶습니다.

java에서는 공통된 속성과 기능을 사용하기 위해 사용하고 있습니다.

 

2. 캡슐화 (encapsulation) 

기능을 사용하는데 필요한 부분은 open을 하고 기능을 사용하는데 필요하지 않고 건드리면 안되는 부분들은 은닉을 해서 코드가 잘못 사용되는 일이 없도록 합니다.

 

3. 상속 (ingeritance) : 

추상화(abstaction)을 사용해 묶어놓은 상위 개념을 하위 객체가 물려받아 사용할 수 있습니다.

상위클래스의 기능들을 하위클래스가 사용할 수 있습니다.

 

4. 다형성 (polymorphism) : 

같은이름, 같은타입, 같은 자료형으로 여러개의 형태를 가질 수 있습니다.

override, overroding 을 예시로 들 수 있습니다.

 

Data Type

자바의 데이터타입은 값을 호출하는 기본타입(call by balue==emmutable)과, 값이 저장된 주소값을 소출하는 참조타입(call by reference==mutable)로 나누어진다.

 

Type이란?

어떠한 형태의 값(변수)이 들어갈 수 있는지 지정해줍니다.

1byte=정보의 기본단위, 8비트가 묶어진것. 한 바이트로 나타낼 수 있는 정보는 256개이다

변수란?

변하는 수, 값이 들어갈 수 있는 공간<->변하지 않는 수, 상수

# Type 변수 = 값
#정수
	// 정수형 리터럴 : byte(1), short(2), int(4), long(8) [접미사 l, L]
	public static void main(String[] args) {
		// 타입 변수 = 값 ;
		
		byte b01 = 126;
		System.out.println(b01);
		byte b02 = (byte) 128;		// 형 변환
		System.out.println(b02);	//byte범위가 127까지이기때문에 -128로 출력된다
		
		byte sumB = (byte)(b01 + b02);	// 연산의 기본은 int
		System.out.println(sumB);
		
		System.out.println("------------------------------------");
		
		short s01 = 32767;
		System.out.println(s01);
		short s02 = 2;
		System.out.println(s02);
		short sumS = (short) (s01 + s02);
		System.out.println(sumS);
		
		System.out.println("------------------------------------");

		long l01 = 3000000000l;
		long l02 = 4000000000L;
		long sumL = l01 + l02;
		System.out.println(sumL);

		System.out.println("------------------------------------");
		
		// 0b : 2진수
		System.out.println(0b10);
		// 00 : 8진수
		System.out.println(0010);
		// 0x : 16진수
		System.out.println(0x10);
 		
		
	}
}
#실수
public class MTest03 {

	// 실수형 리터럴 : float(4) [접미사 f, F], double(8) [접미사 d, D]
	public static void main(String[] args) {
		float f01 = 0.1f;
		float f02 = 1.8F;
		float sumF = f01 + f02;
		System.out.println(sumF);
		
		double d01 = 0.2;			// 실수의 기본 타입
		double d02 = 3.7d;
		double sumD = d01 + d02;
		System.out.println(sumD);
		
	}
}
#문자형과 논리형
public class MTest04 {

	// 문자형 'char(2)', 논리형 boolean(1)
	// 문자열 "String"
	public static void main(String[] args) {
		char c01 = 'a';
		System.out.println(c01);
		char c02 = 'b';
		int c03 = c02;	// ascii code
		System.out.println(c03);
		
		String s01 = "ab";
		System.out.println(s01);
		String s02 = "cdefg";
		System.out.println(s02);
		System.out.println(s01 + s02);
		
		char last_name = '\uc774';
		System.out.println(last_name);
		
		System.out.println("----------------------------------");
		
		boolean bl01 = true;		// 참
		boolean bl02 = false;		// 거짓
		System.out.println(bl01);
		System.out.println(bl02);
		
		
	}
}

Wrapper class : 참조타입의 기능을 사용하기 위해 형변환하는것

public class MTest02 {

	public static void main(String[] args) {
		// Wrapper Class : 기본 타입을 참조 타입으로 바꿈
		// 참조 타입 : 주소값
		// type 변수 = new type();
		//				값;
		
		// boxing : 값(기본타입) -> 참조타입
		Integer i = new Integer(100);
		System.out.println(i);
		
		// unBoxing : 참조타입 -> 기본타입(값)
		// 명시적
		int j = i.intValue();
		// 묵시적
		int k = i;
		
		System.out.println(j);
		System.out.println(k);
	}
}

묵시적 형변환과 명시적 형변환의 예

public class MTest01 {

	public static void main(String[] args) {
		// 묵시적 형 변환 upCasting(promotion) : 작은 타입 -> 큰 타입
		byte b01 = (byte)100;
		int i01 = b01;
		System.out.println(i01);
		
		// 명시적 형 변환 downCasting(casting) : 큰 타입 -> 작은타입
		int i02 = 100;
		byte b02 = (byte) i02;
		System.out.println(b02);
		
	}
}