본문 바로가기

분류 전체보기502

[Java] chap11 : 기본 API (패키지 클래스) - Object 클래스, hashCode(), toString() Object 클래스 Object 클래스 1. 모든 클래스의 부모클래스 2. 모든 클래스의 객체는 Object 클래스의 객체를 가지고 있다. => 모든 객체는 Object 타입으로 참조가 가능하다. 3. 모든 틀래스의 객체는 Object 클래스의 멤버를 호출할 수 있다. equals 메서드 : 동일성 판단 메서드. 객체의 내용비교를 위한 메서드 객체의 내용의 동일성 판단을 위해서는 equals 메서드로 호출 해야함. Object 클래스에서는 == 연산자와 동일한 기능을 구현. 내용비교(논리적 동등성)를 위해서는 오버라이딩이 필요함. 참조형 객체인 경우 내용비교를 위해서는 == 연산자 사용하지 말고 equlas 메서드로 비교. 📌 package chap11; class Equal { int value; Eq.. 2023. 4. 16.
[Java] chap10 : 내부 클래스 - 람다 Exam 1-2 📌 람다 Exam1 package chap10; import java.util.Scanner; /* * 화면에서 숫자를 입력받아서 입력받은 숫자까지의 합 출력하기 * LambdaInterface1 인터페이스를 이용하여 람다 방식으로 구현하기 */ public class Exam1 { public static void main(String[] args) { System.out.println("숫자를 입력하세요."); Scanner scan = new Scanner(System.in); int num = scan.nextInt(); //합 LambdaInterface1 f = () -> { int sum=0; for(int i=0;i { int sum=0; for(int i=0;i { int sum=0; f.. 2023. 4. 16.
[Java] chap10 : 내부 클래스 - 람다(Lambda) 람다(Lambda) 람다 예제 : jdk8 이후 버전에 사용 가능함 람다에서 사용되는 인터페이스는 FunctionalInterface 여야함. FunctionalInterface : 추상메서드가 한개만 존재하는 인터페이스. 매개변수,리턴타입이 없는 경우 () -> {...}; 구현. 람다식 내부에 구현되는 문장이 한개인 경우는 {} 생략 가능. 📌 package chap10; @FunctionalInterface //어노테이션. 반드시 써야할 필요는 없다. interface LambdaInterface1 { void method(); } public class LambdaEx1 { public static void main(String[] args) { int num = 100; //이름없는 내부클래스 .. 2023. 4. 16.
[Java] chap10 : 내부 클래스 - 내부 클래스 내부 클래스 내부 클래스 : 클래스 내부에 존재하는 클래스 자료형은 외부클래스명.내부클래스명 외부클래스 : 내부클래스를 멤버로 인식한다. 내부클래스 : 1. 인스턴스 내부클래스 : 객체화시 외부클래스의 객체화가 먼저되어야한다. 2. Static내부클래스 : new 외부클래스명.내부클래스() 객체화 됨. 외부클래스의 객체화 필요없음. 3. 지역내부클래스 : 메서드 내에 선언된 클래스. 메서드 내에서만 객체화 가능. 📌 package chap10; class Outer1 { //외부 클래스 class InstanceInner extends Object { //인스턴스 내부 클래스 int iv = 100; //인스턴스 내부 클래스의 멤버이고 인스턴스 변수 static int cv = 10; //인스턴스 내부 .. 2023. 4. 16.
[Java] chap9: 예외처리 - Exception Exam 1-3 📌 Exception Exam1 package chap9; import java.util.InputMismatchException; import java.util.Scanner; /* * 1. 화면에서 1부터 10까지의 숫자를 입력받아 숫자만큼 *출력하는 프로그램 작성하기 * 입력값이 숫자가 아닌경우 InputMismatchException 예외가 발생됨. * 숫자만 입력하세요 메서지 출력하고, 다시 입력받도록 구현하기 * catch 블럭 scan.next(); 추가 * * 2. 입력값이 1 ~ 10사이의 숫자가 아닌경우 예외 발생 */ public class Exam1 { public static void main(String[] args) { Scanner scan = new Scanner(Syste.. 2023. 4. 16.
[Java] chap9 : 예외처리 - Exception6(오버라이딩에서 예외처리), Exception7(예외클래스 생성) 오버라이딩에서 예외처리 📌 package chap9; /* * 오버라이딩에서의 예외처리: * 부모클래스의 예외처리와 같거나 작은범위(하위예외객체) 가능. */ class Parent { public void method() throws RuntimeException { System.out.println("Parent 클래스의 method()"); } } class Child extends Parent { public void method() throws ArithmeticException { System.out.println("Child 클래스의 method()"); } } public class ExceptionEx6 { public static void main(String[] args) { Chil.. 2023. 4. 16.
[Java] chap9 : 예외처리 - Exception5(throw) throw throws : 예외처리. 발생된 예외를 처리 throw : 예외발생. 없는 예외를 발생 예외 처리 try catch finally : try 블럭에서 예외가 발생되면, catch 구문으로 제어이동. finally 블럭은 무조건 실행 구문. thorws : 호출한 메서드로 예외 전달 예외 발생 thorw : 예외 강제 발생 📌 package chap9; public class ExceptionEx5 { public static void main(String[] args) { try { first(); } catch(Exception e) { System.out.println("숫자만 가능합니다."); e.printStackTrace(); } } private static void first().. 2023. 4. 15.
[Java] chap9 : 예외처리 - Exception4(throws) throws throws : 예외 처리 예외던지기 => 현재메서드를 호출한 메서드로 예외 전달. 📌 package chap9; public class ExceptionEx4 { public static void main(String[] args) { try { first(); } catch(Exception e) { System.out.println("숫자만 가능합니다."); e.printStackTrace(); } } private static void first() throws Exception{ System.out.println("first 메서드"); second(); } //throws Exception : 예외가 발생하면 나를 호출한 메서드로 예외 전달. private static void s.. 2023. 4. 15.