TIL
-
JAVA 자바 예외처리, throws, 사용자정의 예외클래스JAVA 2020. 8. 10. 23:55
🎯 자바 예외처리와 throws키워드, 사용자정의 예외클래스를 알아본다. 예외처리 (Exception Handling) 예외란 프로그램 실행 중에 발생되는 의도치않은 문제를 뜻한다. 예외가 발생되면 프로그램은 중간에 비정상적으로 종료된다. 예외가 발생했을 때 프로그램이 끝까지 정상종료 되도록 처리하는 것을 예외처리라고 한다. 이 방법을 통해 예외가 발생된 이유와 예외메시지를 보여주고 나머지 작업을 계속 실행하게 할 수 있다. 예외처리 방법은 함수 안에서 직접 에러코드를 잡느냐, 함수를 호출한 곳에서 에러를 잡느냐 두 종류로 나뉜다. 예외처리는 오류가 있는 코드를 수정하는 방법이 아니다. 우리가 실행하는 코드는 순차문이며, 한 번 실행된 문장은 다시 실행시킬 수 없기 때문에 예외 발생을 수정하는 것은 불가..
-
JAVA 자바 중첩클래스, comparator 인터페이스JAVA 2020. 8. 9. 12:54
🎯 자바 중첩클래스와 comparator 인터페이스를 활용한 배열정렬을 알아본다. 🔖 목차 중첩클래스 익명클래스 comparator 정렬 인터페이스 중첩클래스 public class Outer{ class Inner{ }//end Inner }//end Outer 클래스 안에 또 다른 클래스를 가진 형태다. A라는 클래스가 B 클래스에서만 사용된다면, 독립적인 클래스로 작성하기보다 B클래스의 중첩형태로 작성하는 게 관리하기 쉬워진다. 중첩된 이너클래스는 아우터 클래스의 멤버(변수, 메소드)를 자신의 것처럼 사용할 수 있다. Outer 멤버의 접근지정자가 private이라도 접근할 수 있다. 이너클래스 안에선 static 변수를 사용할 수 없다. static 선언은 변수가 아닌 이너 클래스에만 지정할 수 ..
-
JAVA 자바 인터페이스, 디커플링JAVA 2020. 8. 8. 17:50
🎯 자바 인터페이스, 디커플링 설계를 알아본다. 인터페이스 public interface 인터페이스명 { // public static final로 지정한 상수 // public abstract 지정자를 이용한 추상메소드 // public default 지정자를 이용한 일반메소드 // public static 지정자를 이용한 일반메소드 } 인터페이스는 추상클래스와 비슷한 용도로 메소드 사용을 강제할 수 있는 특징을 가졌다. 상수, 추상메소드, defualt 메소드, static메소드만 가질 수 있다. 불완전한 추상메소드를 갖고 있기 때문에 객체생성이 불가능하며 구현을 할 때는 일반클래스에 extends가 아닌 구현한다는 뜻의 implements키워드를 사용한다. 인터페이스와 구현관계를 가진 클래스는 준상..
-
JAVA 자바 추상클래스 abstractJAVA 2020. 8. 7. 23:58
🎯 자바의 추상클래스를 알아본다. 추상클래스 "이 함수만은 반드시 자식에게 주겠다!" public abstract class 클래스명{ :인스턴스 변수 :일반 메소드 (concrete method) :생성자 :추상 메소드 (abstract method)} abstract 키워드를 사용해 추상클래스를 선언한다. 하위클래스에서 반드시 부모클래스의 메소드를 사용하도록 강제할 수 있는 클래스다. `{블록}`이 없는 메소드를 추상메소드라고 하며, 블록이 없기 때문에 아무런 수행방법도 제시되지 않은 상태다. public abstract void 메소드명([인자]); 이 추상메소드를 하나라도 포함하면 추상클래스가 되는데, 구현되지 않은 미완성 상태의 추상적인 클래스를 의미한다. 이 추상클래스를 구체적으로 구현할 책임..
-
JAVA 자바 오버라이딩, 다형성JAVA 2020. 8. 6. 23:29
🎯 자바 상속의 오버라이딩과 다형성을 알아본다. 오버라이딩 상속관계에서 부모클래스의 메소드를 자식클래스가 재정의해서 사용하는 방법이다. 부모의 메소드 형식을 똑같이 써야한다. 접근지정자는 부모와 같게 하거나 확대 지정만 할 수 있다. static, final, private은 오버라이딩이 불가능하다. class Employee{ String name; int salary; public String getEmployee() { return name +" "+ salary; } public Employee() {} public Employee(String name, int salary) { this.name = name; this.salary = salary; } } class Manager extends ..
-
JAVA 자바 상속, 접근지정자JAVA 2020. 8. 6. 00:28
🎯 자바 상속, super키워드, 접근지정자를 알아본다. 클래스들의 관계 has a 관계 : 한 객체가 다른 객체를 포함하는 관계이다. 흔히 사용된다. is a 관계 : 비슷한 속성 및 동작을 가진 객체를 큰 개념과 작은 개념으로 설정한 관계이다. 이들은 공통점을 가졌다. 상속 public class 자식클래스 extends 부모클래스 { } 객체들 간 is a 관계가 성립되면 상속을 적용할 수 있다. 객체들 간의 공통점을 추출해서 상위개념 객체로 만들고 하위 객체에서 필요한 것들을 상속받아 사용하면 중복제거와 재사용성 효과를 볼 수 있다. 부모클래스의 모든 멤버(인스턴스 변수, 메소드)를 자식클래스에서 선언 없이 사용할 수 있으며 자식클래스는 단 하나의 부모클래스만 가질 수 있다. class Emplo..
-
JAVA 자바 오버로딩, this, final, static, varagsJAVA 2020. 8. 4. 23:00
🎯 자바 오버로딩, this, final, static 키워드, 패키지와 임포트, varags가변인자를 알아본다. 오버로딩 식별자는 똑같은 이름을 중복 사용할 수 없다. 하지만 변수와 다르게 메소드와 생성자는 같은 클래스 내에서 같은 이름으로 여러개를 만들 수 있으며 이렇게 생성된 것을 오버로딩이라고 부른다. 여러개의 인자를 받을 수 있게 준비한 뒤 자동으로 타입에 맞는 애를 알아서 호출해준다. 오버로딩 생성 시 반드시 인자리스트(순서,타입,개수)가 서로 달라야하며 기본 생성자는 명시해야 한다. //생성자 오버로딩 public class Ex05_15 { public Ex05_15() { System.out.println("()생성자 호출"); } public Ex05_15(String a) { Syst..
-
JAVA 자바 클래스 모듈화 연습하기JAVA 2020. 8. 3. 23:41
🎯 자바 배열을 활용해 클래스 연습문제를 풀어본다 지옥의 클래스 쪼개기 연습 1. 다음 배열의 합과 평균을 구하는 프로그램을 작성 하시오. int[] arr = {10, 20, 30, 40, 50}; 출력결과 : sum=150 avg=30 public class ArrayTest01 { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50}; int sum = 0; for (int i = 0; i