자바
-
[Java] 자바 제네릭 클래스 및 상속프로그래밍 언어/Java 2022. 2. 11. 10:08
제네릭 클래스 제네릭 클래스와 인터페이스는 타입을 변수로 사용한다. 즉, 타입 자체가 매개변수다. 제네릭 클래스는 내부에 타입 매개변수를 표시한다. 아래 코드는 Integer와 String 매개변수로 받는 제네릭 클래스를 정의한 것이다. class MyClass { T a; MyClass(T a) { this.a = a; } public void setA(T a) { this.a = a; } public T getA() { return this.a; } } public class jenerictest { public static void main(String[] args) { MyClass a = new MyClass(10); MyClass a2 = new MyClass("홍길동"); System.out..
-
[Java] 자바 예외 처리 - 예외 떠넘기기(throws)프로그래밍 언어/Java 2022. 2. 10. 17:37
throws 키워드로 예외 떠넘기기 메소드에서 발생한 예외를 처리하기 어려울 때 throw 키워드를 사용하여 상위 코드로 양도한다. 즉, throw절은 예외를 처리하지 않고 발생한 예외 객체를 다른 곳으로 넘겨준다. class MyClass { void m() { int data = 10/0;// 예외 발생 } void n() throws Exception { m(); } void p() { try { n(); } catch(Exception e) { System.out.println(e.getMessage()); } } } public class exceptiontest { public static void main(String[] args) { MyClass obj = new MyClass(); ob..
-
[Java] 자바 예외 처리(try-catch문)프로그래밍 언어/Java 2022. 2. 10. 17:19
0으로 나누는 경우 public class exceptiontest { public static void main(String[] args) { int a = 10; int b = 0; int c = a / b; } } 위의 코드를 실행해보자. Exception in thread "main" java.lang.ArithmeticException: / by zero at day03.exceptiontest.main(exceptiontest.java:10) 정수를 0으로 나누는 경우 ArithemeticException 에러 로그와 함께 실행이 중단된다. 예외 발생 시 실행이 중단되지 않도록 처리 try~carch 문으로 예외 발생 시 Exception 객체로 에러 메시지를 출력하도록 한다. public c..
-
[Java] 자바 여러 타입을 가지는 배열 만들기프로그래밍 언어/Java 2022. 2. 10. 13:31
C언어에서는 여러 타입을 가지는 변수를 사용하기 위해서 구조체를 사용한다. 자바에서는 구조체가 없기 때문에 클래스를 활용하여 만든다. 클래스를 정의하여 배열로 만들기 class Dept { private int deptId; private String deptName; Dept(int id, String name) { this.deptId = id; this.deptName = name; } int getDeptId() { return deptId; } String getDeptName() { return deptName; } } public class test { public static void main(String[] args) { ArrayList arr = new ArrayList(); arr...
-
[Java] 자바 문자열 비교프로그래밍 언어/Java 2022. 2. 10. 10:49
자바의 String의 특성을 고려하여 문자열을 비교한다. String을 비교할 때는 '=='과 equals() 메소드를 사용한다. 예시코드 1 public class stringtest { public static void main(String[] args) { String s1 = "홍길동"; String s2 = "홍길동"; if(s1 == s2) { System.out.println("이름이 같다."); } else { System.out.println("이름이 다르다."); } String s3 = new String("홍길동"); if(s2 == s3) { System.out.println("이름이 같다."); } else { System.out.println("이름이 다르다."); } } } ..
-
[Java] 익명클래스프로그래밍 언어/Java 2022. 2. 10. 10:41
익명클래스는 메인 메소드 내에서 메소드를 오버라이드 할 수 있다. class Student { public void gotoSchool() { System.out.println("학교에 간다."); } } public class interface02 { public static void main(String[] args) { Student stu = new Student() { public void gotoSchool() { System.out.println("오늘은 늦게 학교에 간다."); } }; stu.gotoSchool(); } }
-
[Java] 자바 인터페이스 사용프로그래밍 언어/Java 2022. 2. 10. 10:30
자바에서 인터페이스(interface)는 하위 클래스에서 메소드 구현을 강제하도록 한다. 하위 클래스가 가지는 기능(Methos)을 정의하고 있다. 단순한 덧셈, 뺄셈 메소드를 인터페이스로 구현한다. 인터페이스 선언 interface Calculator { int calculate(int a, int b); } 하위 클래스 구현 implements 키워드로 인터페이스를 상속받아서 구현한다. class Plus implements Calculator { public int calculate(int a, int b) { return a + b; } } class Minus implements Calculator { public int calculate(int a, int b) { return a - b; }..