JAVA/java 이론 23

[자바JAVA] 예외처리 - try catch finally/ RuntimeException의 종류/ 다중 catch/ throws/throw/사용자 정의 예외

이 포스팅에는 아래의 내용이 포함되어있습니다. 1. 오류의 종류 2. 예외처리의 목적 3. 예외의 종류 4. 예외클래스 5. try- catch- finally 5. RuntimeException의 종류 * NullPointerException *ArrayIndexOutOfBoundsException * NumberFormatException * ClassCastException 6. 다중catch 7. thorws 8. throw 9. 사용자 정의 예외 1. 오류의 종류 *에러Error - 의도치 않게 프로그램이 종료되는 것 - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류(정전, 베드섹터 등) - 정상 실행상태로 돌아갈 수 없음 *예외Exception - 사용자의 잘못된 조작 또는 개발자의 잘못된 ..

JAVA/java 이론 2020.10.30

[자바JAVA]인터페이스 / 상속/ 구현/다형성/ default메서드/static메서드

이 포스팅에는 아래의 내용이 포함되어있습니다. 1. 인터페이스 2.인터페이스의 상속 3. 인터페이스의 구현 4. 인터페이스의 장점 5. 인터페이스를 통한 다형성 - 직접적 관계 - 간접적 관계 6. defalt메서드 - static메서드 1. 인터페이스란? Interface - 일종의 추상클래스 - 추상클래스보다 추상도가 높다. - 한마디로 객체 사용 설명서라고 한다. - 실제 구현된 것이 하나도 없는 기본 설계도이다. - 추상메서드와 상수, 디폴트 메서드 만을 멤버로 가질 수 있다. ( static 메서드는 가능) - 인스턴스를 생성할 수 없다. (예제) 1 2 3 4 5 6 7 public interface A { void method(); //추상메서드선언 //public abstract 생략 - ..

JAVA/java 이론 2020.10.29

[자바JAVA] 추상클래스, 추상 메서드 abstract class

이 포스팅에는 아래의 내용이 포함되어있습니다. 1. 추상클래스 2. 추상 메서드 3. 예제 1. 추상클래스란?(abstract class) - 추상메서드를 1개 이상 가지고 있는 클래스 - 추상메서드는 선언부만 있고 구현부는 없는 클래스 - 완성된 설계도가 아니기 때문에 인스턴스를 생성할 수 없다. - 인스턴스를 생성하기 위해서는 추상메서드를 구현해야한다. - 다른 클래스를 작성하는데 도움을 줄 목적으로 작성된다. 2. 추상 메서드 - 선언부만 있고 구현부는 없는 클래스 - 꼭 필요하지만 자손마다 다르게 구현 될 것으로 예상되는 경우 사용 - 추상 클래스의 일부 메서드만 구현할 때 그 클래스 앞에 abstract를 붙여야한다. 예제를 통해 살펴보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 ..

JAVA/java 이론 2020.10.28

[자바JAVA]다형성/ 업캐스팅, 다운캐스팅/instanceof연산자/ 형변환

이 포스팅은 아래의 내용을 포함하고 있습니다. 1. 다형성이란 2. 참조변수의 형변환 3. instanceof 연산자 4. 예제 1. 다형성이란? - 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것 - 다룰 수 있는 멤버 개수가 다르다( 예제에서 확인) - 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있지만 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수 없음 - 메서드를 오버라이딩한 경우 자손클래스의 메서드가 호출됨 2. 참조변수의 형변환 - 서로 상속, 구현관계에 있는 타입간 형변환이 가능하다. 자손-> 조상 형변환 (업캐스팅): 형변환 생략 가능 조상-> 자손 형변환 (다운캐스팅): 형변환 생략 가능 (예제) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1..

JAVA/java 이론 2020.10.22

[자바JAVA]제어자 modifier / 접근 제어자/ 제어자의 조합

이 포스팅에는 아래의 내용이 포함되어있습니다. 1. 제어자란? 2. 제어자 종류 3. 접근 제어자 4. 접근 제어자를 사용하는 이유 5. 제어자의 조합 1.제어자란? (modifier) - 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 나타낸다. - 접근 제어자와 그 외 제어자로 나뉜다. - 하나의 대상에 여러 제어자를 조합해서 사용할 수 있지만 접근 제어자는 하나만 사용가능하다. 1.navtive : 자바가 아닌 다른 언어로 작성된 메서드들 호출할때 사용하는 것 2.transient : 직렬화에 많이 쓰인다. 직렬화 : 객체를 데이터 스트림으로 만드는 것인데 다시 말해, 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말함. 3. Synchronized, vola..

JAVA/java 이론 2020.10.21

[자바JAVA] 싱글톤 디자인 패턴

1. 싱글톤 - 자바의 디자인 패턴 - 하나의 애플리케이션 내에서 단 하나만 생성되는 객체 외부에서 new연산자로 인스턴스 생성할 수 없도록 private 접근 제어자를 붙임 2. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package sec07_exam; public class Singleton { //접근제어자 범위가 가장 좁은 범위의 제어자이기 때문에 외부에서 접근을 못한다. private static Singleton singleton = new Singleton(); //싱글톤 패턴은 그 핵심이 하나의 인스턴스를 공유하는 것이다. //하여, 생성자에 private를 통해서 외부에서 싱글톤 객체의 생성을 막는다. private Singl..

JAVA/java 이론 2020.10.20

[자바JAVA] 메서드 오버라이딩

1. 오버라이딩(재정의) 조상클래스로부터 상속받은 메서드의 내용을 상속 받는 클래스에 맞게 변경하는 것 2. 오버라이딩의 조건 메서드의 선언부가 같아야한다. 접근 제어자를 좁은 범위로 변경할 수 없다. 조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 3. 오버로딩 VS 오버라이딩 오버로딩 - 기존에 없던 메서드를 새로 정의하는 것 new 오버라이딩 - 상속받은 메서드의 구현부를 바꾸는 것 modify (예제) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package sec01_exam; //조상클래스 public class HddDisk { //멤버변수 int capacity;//용량 int rpm;//속도 //생성자 pub..

JAVA/java 이론 2020.10.19

[자바JAVA]상속/포함관계

이 포스팅은 아래의 내용이 포함되어있습니다. 1. 상속 2. 포함 3. 상속이냐 포함이냐 결정하기 4. 단일상속 5. Object클래스 6.예제 1. 상속 - 기존의 클래스를 사용하여 새로운 클래스를 만드는 것 - 자손은 조상의 멤버를 모두 상속받는다(생성자, 초기화 블럭 제외) - 자손의 멤버개수는 조상의 멤버개수보다 많다. - 공통부분은 조상에서 관리하고 개별 부분은 자손에서 관리한다. - 조상의 변경은 자손에게 영향을 끼치지만 자손의 변경은 조상에게 영향을 끼치지 않는다. 상속은 이렇게 extends (확장시키다) 를 붙이고 조상클래스를 상속받는 것 2. 포함 - 한 클래스를 멤버로 다른 클래스를 선언하는 것 포함은 이렇게 클래스 안에 다른 클래스를 멤버로 선언하는 것 3. 클래스간의 관계 결정하기..

JAVA/java 이론 2020.10.18

[자바JAVA] 생성자 constructor / this()/ 생성자를 이용한 인스턴스 복사

이 포스팅은 아래의 내용을 포함하고 있습니다. 1. 생성자 2. 생성자의 조건 3. 기본 생성자 4. 매개변수가 있는 생성자 5. this() 6. 생성자를 이용한 인스턴스 복사 7. 예제 1. 생성자란 인스턴스가 생성될때마다 호출되는 '인스턴스 초기화 메서드' 모든 클래스에는 하나이상의 생성자가 있어야함 생성자가 없을 시, 기본적으로 기본생성자를 컴파일러가 만들어줌 생성자가 있을 시, 기본생성자 안만들어줌 2. 생성자의 조건 리턴타입이 없다(하지만void를 쓰지 않는다.) 클래스의 이름과 동일하다. 3. 기본생성자 매개변수가 없는 생성자 public Car() { } 이런식으로 Car클래스에 있는 기본 생성자 4. 매개변수가 있는 생성자 public Car(int x){} 요런 식으로 매개변수가 있는 ..

JAVA/java 이론 2020.10.11

[자바JAVA]final필드와 상수

1. final필드 최종적인 값을 갖고 있는 멤버 변수 = 값을 변경할 수 없다. class앞에 붙으면 더 이상 확장 되지 않는다. 상속불가. - final의 초기화 방법 멤버 변수 선언시, 생성자에서 단 한번 초기화 2. 상수 static final 객체 마다 가지는 불변의 정적 필드 - 이름은 전부 대문자로 작성 다른 단어가 결합되면 _으로 연결 (예제) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 package sec02_exam_final; public class Person { //불변의 인스턴스 필드(선언과 동시에 초기화를 하거나, 혹은 생성자에서 단 한번만 초기화가 이루어진다.) final S..

JAVA/java 이론 2020.10.10