본문 바로가기
반응형

자바12

java.base 모듈 Java.base 모듈 모든 모듈이 의존하는 기본 모듈 requires(의존 모율 지정 키워드) 하지 않아도 사용할 수 있음 패키지 용도 java.lang 자바언어의 기본 클래스를 제공 java.util 자료 구조와 관련된 컬렉션 클래스를 제공 java.text 날짜 및 숫자를 원하는 형태의 문자열로 만들어 주는 포맷 클래스를 제공 java.time 날짜 및 시간을 조작하거나 연산하는 클래스를 제공 java.io 입출력 스트림 클래스를 제공 java.net 네트워크 통신과 관련된 클래스를 제공 java.nio 데이터 저장을 위한 Buffer 및 새로운 입출력 클래스 제공 java.lang 패키지 클래스 용도 Object 자바 클래스의 최상위 클래스 System -키보드로부터 데이터를 입력받을 때 사용 -.. 2023. 1. 19.
예외처리 예외와 예외 클래스 에러(Error) : 컴퓨터 하드웨어의 고장으로 발생되는 응용프로그램 실행오류 예외(Exception) : 잘못된 사용 또는 잘못된 코딩으로 인한 오류 자바는 예외가 발생하면 예외 클래스로부터 객체를 생성 Error, Exception : Throwable을 상속받음 예외클래스 : Throwable.Exception 상속받음 일반예외(Exception) 컴파일러가 예외처리 코드 여부를 검사O 예외처리 코드가 없다면 컴파일 오류를 발생시킴 실행예외(Runtime Exception) 컴파일러가 예외처리 코드 여부를 검사X Exception.RuntimeException 클래스를 상속 받음 예외처리 코드가 없다면 오류발생 없이 컴파일 가능하나 실행도중 예외발생 예외처리 코드 예외가 발생했을.. 2023. 1. 19.
인터페이스 - 01 인터페이스 사전적 의미로 두 장치를 연결하는 접속기 다형성 구현의 주된 기술 인터페이스 선언 class 대신 interface를 사용 접근제한자는 class와 동일 (public, default) 인터페이스 필드 (public static final) 무조건 public, static, final 특성을 갖는 상수필드 public, static, final 을 생략하더라도 컴파일 과정에서 붙게됨 인터페이스 추상 메소드 (public abstract) 무조건 public, abstract 을 가짐 public, abstract 를 생략하더라도 컴파일 과정에서 붙게됨 중괄호 블록 없음 인터페이스 구현객체에는 재정의된 메소드가 반드시 있어야함 인터페이스 디폴트 메소드 (public default) 선언 방법은.. 2023. 1. 5.
상속 - 02 자동 타입변환 자식 클래스는 부모의 특징과 기능을 상속받기 때문에 부모 클래스와 동일하게 취급될 수 있음 바로 위의 부모가 아니더라도 상속 계층에서 상위 타입이라면 자동 타입 변환이 일어날 수 있음 부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메소드만 접근이 가능 (비록 변수는 자식 객체를 참조하지만 변수로 접근 가능한 멤버는 부모 클래스 멤버로 한정됨) 그러나 자식 클래스에서 오버라이딩 된 메소드가 있다면 부모 메소드 대신 오버라이딩된 메소드가 호출됨 부모타입 변수 = 자식타입객체; class Cat extends Animal { } Cat cat = new Cat(); Animal animal = cat; cat == animal // true 강제 타입 변환 (casting.. 2022. 12. 22.
상속 - 01 클래스 상속 public class 자식클래스 extends 부모클래스 { } 프로그램에선 자식 클래스가 부모 클래스를 선택 단 하나의 부모 클래스만 상속 받을 수 있음 (다중상속x) 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외 부모 생성자 호출 public 자식생성자() { super(); } 자식 객체를 생성하면, 부모 객체가 먼저 생성되고 그 다음에 자식 객체가 생성됨 부모 클래스에 기본 생성자가 없고 매개변수를 갖는 생성자만 있다면 super(매개값,...) 코드를 넣어줘야 함 자식 생성자 호출 자식 생성자에서 super();호출 부모 객.. 2022. 12. 21.
클래스 - 02 인스턴스 멤버 인스턴스 필드, 인스턴스 메소드 객체마다 가지고 있는 멤버, 객체를 생성한 후 사용 가능 인스턴스 메소드는 객체 내부에 존재하지 않고 메소드 영역에 저장되고 공유됨, 인스턴스 메소드라 불리는 이유는 메모리 블록 내부의 인스턴스 필드 등이 사용되는 경우 객체 없이 사용이 불가하기 때문 this 키워드 객체 내부에서 인스턴스 멤버에 접근하기 위해 사용 생성자와 메소드의 매개 변수 이름이 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용 정적 멤버 정적 필드, 정적 메소드 클래스에 고정된 멤버, 객체를 생성하지 않고 사용 가능 정적 멤버는 메소드 영역에 저장됨 개체마다 가지고 있을 필요가 없는 공용 데이터라면 정적 필드로 선언하는 것이 좋음 static 키워드를 붙이면 됨 정적 메소.. 2022. 12. 16.
클래스 - 01 객체지향 프로그래밍 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 객체 모든 인스턴스를 대표하는 포괄적인 의미 클래스의 타입으로 선언되었을 때 객체라고 부름 메모리 할당 되지 않은 상태 객체 : 필드(속성), 메소드(동작) 으로 구성 객체 모델링 : 현실 세계의 객체를 소프트웨어 객체로 설계하는 것 객체 간의 관계 (집합 관계, 사용 관계, 상속 관계) 객체지향 프로그래밍의 특징 캡슐화 : 필드와 메소드 보호, 접근 제한자 사용 상속 : 코드의 재사용성, 유지 보수 시간 최소화 (부모 객체의 필드와 메소드를 수정하면 자식 객체들은 자동으로 수정됨) 다형성 : 자동 타입 변환과 재정의, 상속, 인터페이스 구현 객체와 클래스 클래스 : 객체 생성의 설계도 .. 2022. 12. 11.
참조 타입 참조 타입 배열 타입, 열거 타입, 클래스, 인터페이스 기본 타입은 실제 값을 변수에 저장하지만, 참조 타입은 변수에 힙 영역에 생성되어있는 객체의 메모리의 번지 수를 저장하여 객체를 참조함 모든 변수는 스택 영역에 생성됨 String name = "홍길동"; String hobby = "독서"; // String 객체로 생성이 되기 때문에 번지를 참조함 메모리 영역 java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 구문해서 사용 메소드 영역 클래스별로 정적필드와 상수, 메소드 코드, 생성자 코드 등이 저장됨 바이트코드 파일을 읽은 내용이 저장됨 (소스코드(.java) → 바이트코드파일(.class)) 힙 영역 클래스로 부터 생성된 객체와 배열이 저장됨 여기에서.. 2022. 12. 9.
조건문과 반복문 if문 조건식이 true면 블록을 실행, false면 블록을 실행하지 않음 실행문이 하나밖에 없다면 중괄호{} 를 생략 할 수있으나, 생략하지 않고 작성하는 것이 좋음 if(조건식) { 실행문A } 실행문B // 조건식이 true일 경우 A 실행, false일경우 B 실행 if-else문 조건식이 true면 if문의 블록 실행, false면 else문의 블록 실행 if(조건식) { 실행문A } else { 실행문B } 실행문 C // 조건식이 true일 경우 A 실행 후 C 실행, false일경우 B 실행 후 C 실행 else if문 else문 안에 if-else문이 있는경우 아래 두 문장은 같은 문장임 if(조건식1) { 실행문A } else { if(조건식2){ 실행문B } else { 실행문C } .. 2022. 12. 8.
반응형