본문 바로가기

JAVA

(9)
[JAVA] UpCasting & DownCasting 1. 자바의 참조형 캐스팅 1-1. 캐스팅 형변환(캐스팅, 타입변환) ⇒ 하나의 데이터 타입을 다른 타입으로 바꾸는 것 ⇒ Why? 대입 연산자(=) 에서 변수와 값의 타입이 일치하지 않으면 할당이 불가능하기 때문 📌 자바의 데이터형 (타입간의 형변환(casting) 가능) 기본형(primitive type) - Boolean Type(boolean) - Numeric Type(short, int, long, float, double, char) 참조형(reference type) - Class Type - Interface Type - Array Type - Enum Type - 그 외 다른 것들 1-2. 참조형 캐스팅 클래스 자료형변환 상속 관계에 있는 부모(슈퍼 클래스)와 자식(서브 클래스) 간에는..
[JAVA] 추상클래스 1. 추상 메서드와 추상 클래스 1-1. 추상메서드 미완성형 함수(선언만 하고 정의되지 않은 상태 => 헤더 o, 바디(구현부) x) 작성되어있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용 ⇒ 상속받는 클래스에서 다형성을 실현하도록 하기 위함 1-2. 추상클래스 추상메서드를 하나 이상 포함한 클래스 → UPCASTING 용으로 사용됨 ⇒ 추상메서드가 있으면 반드시 선언, 추상메서드가 없어도 추상클래스로 선언 가능 추상클래스는 동작이 정의되지 않은 미완성형이므로 객체 생성 불가 ⇒ super() 메소드를 이용해 추상 클래스 생성자 호출 가능 ⇒ 상속을 통해 자식클래스를 만들고 자식클래스에서 추상메소드를 오버라이딩해야 객체 생성 가능 ⇒ 추상클래스를 상속받고 추상메서드를 오버라이딩하지 않으면 해당 클래..
[JAVA] 배열 1. 배열 자료형 배열(array) : 하나의 블록안에 여러 데이터들을 연속적으로 저장함으로써 데이터를 구조적으로 다룸 배열 요소(element) : 배열을 구성하는 각각의 값 인덱스(index) : 배열에서의 위치를 가리키는 숫자 1-1. 배열 선언 & 초기화 []로 배열을 선언할때 미리 공간의 갯수(길이)를 지정 ⇒ 공간의 제약이 생김 배열의 타입(int)을 지정해 저장할 데이터의 자료형 명시 ⇒ 인덱스(index) 번호를 통해 배열에 접근 가능 1-2. 배열 출력 System.out.println() 으로 배열 변수 출력시 메모리에 있는 배열의 주소값(타입@주소) 반환 - 단, char 형 배열(문자)은 println() 으로 출력 가능 배열 요소 출력 - for 문을 이용해 배열 각 원소들을 순회..
[JAVA] 타입변환 1. 타입 변환 (Type Conversion) 하나의 타입을 다른 타입으로 바꾸는 것(= 형변환) ex) byte → int / int → byte 연산 수행시 같은 타입만 가능 → 형변환 필요 - 낮은 자료형으로는 강제 형변환 (데이터의 손실 발생) - 높은 자료형으로는 자동 형변환 기본 자료형 중 boolean 제외 모든 자료형은 형변환 가능 2. 자동 형변환 (Promotion) 묵시적 / 암시적 형변환 프로그램 실행 도중 자동으로 타입 변환 - 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 - 기존의 값을 최대한 보존할 수 있는 큰 타입으로는 자동 형변환 가능 (데이터 손실 최소화) 자동형변환 가능 방향 2-1. long & float 타입 크기 메모리 설계상 정수 타입보다 실수..
[JAVA] 자료형 1. 정수 자료형 수형 타입 메모리의 크기 데이터의 표현 범위 byte 1바이트 -128 ~ 127 short 2바이트 -215 ~ (215 - 1) -32,768 ~ 32,767 int 4바이트 -231 ~ (231 - 1) -2,147,483,648 ~ 2,147,483,647 long 8바이트 -263 ~ (263 - 1) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 📌 대입하는 숫자 값이 int 자료형의 최대값보다 큰 경우 long 사용 long 변수에 값을 대입할 때는 값 뒤에 L 접미사 붙여야 에러 발생X 1-1. 정수 오버플로우 / 언더플로우 데이터 표현 범위를 벗어남 → 전혀 다른 값(데이터손실) ∴ 데이터의 최소/최대 크기 고려 오버플..
[JAVA] 변수 1. 변수(Variable) 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간 데이터 타입(자료형) - 변수에 적재할 데이터가 메모리에 어떻게 저장되고 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 키워드 2. 기본형 변수(Primitive Type) 실제 값 저장 소문자 시작 비객체 타입 → null X (기본값有) 변수의 선언과 동시에 메모리 생성 모든 값 타입은 메모리의 스택(stack)에 저장 타입 메모리 크기 기본값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32,768 ~ 32,767 int(기본) 4 byte 0 -2,147,48..
[JAVA] 자바 코드 package ch1;// 패키지 선언 // 패키지 가져오기 import java.util.*;// 해당 패키지 내 모든 클래스 불러옴 public class Hello {// 클래스블록 public static void main(String[] args) {// main 메서드의 선언문(main 메서드 블록) // public||private||protected static void[리턴자료형/void는 리턴값 없음] 메서드명(입력자료형, 매개변수) System.out.println("Hello, world.");// 화면에 글자를 출력 System.out.println("Hello, /* 이것은 주석 아님*/ world."); System.out.println("Hello, world. // 이것도 ..
[JAVA]객체 지향 프로그래밍(OOP) 1. 특징 1. 클래스와 객체 자바에서 모든 것은 객체로 표현 객체 : 클래스에 의해 정의된 공간(단위) 데이터와 그 데이터를 조작하는 메서드의 결합체 클래스 : 객체 생성을 위해 미리 선언된 자료형(객체를 생성하기 위한 설계도면) 객체 속성 정의 2. 캡슐화(Encapsulation) 데이터와 메서드를 하나로 묶는 것 자바 => 클래스를 사용하여 데이터를 숨기고, 특정 메서드를 통해서만 데이터 접근 허용 코드의 유지보수성 및 재사용성(확장성) 향상, 데이터 무결성 보호 3. 상속(Inheritance) 이미 존재하는 클래스 기반에 기반하여 새로운 클래스를 만드는 메커니즘 하위 클래스는 상위 클래스의 특성과 메서드를 상속받아 사용 가능 코드의 재사용성(확장성) 향상, 중복 방지, 유지보수 용이 계층 구조..