본문 바로가기

분류 전체보기

(448)
Object와 overriding Object 클래스, 모든 클래스의 최상위 클래스 아무것도 상속받지 않으면 자동으로 Object를 상속받기 때문 이 말은 Object가 가지고 있는 메소드는 모든 클래스에서 사용할 수 있다는 것을 의미 Object 가 가지고 있는 메소드 중에서 가장 많이 사용되는 메소드 1. equals() : 객체가 가지고 있는 값을 비교할 때 사용, 같은 값인 지 아닌지를 비교할 때 사용 객체 간의 같다 다르다를 비교하려면 기준이 필요하다.( 예시: 학번 또는 이름만 같으면 같다할 것인지 등) 즉, Object는 같은 값인지 다른 값인지에 대해서 비교할 수 있는 메소드는 제공하고 있지만 그 메소드를 오버라이딩해서 기준을 정해주는 것은 프로그래머가 해야하는 일이다. String 클래스의 equal()는 Object 가..
[프로그래머스] 약수의 합 class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i
사용자 정의 Exception 사용자 정의 Exception Exception 클래스가 이미 자바에서 정의해놓은 클래스들이 사용될 수 도 있고 사용자가 직접 Exception을 정의해서 사용할 수 도 있다. 사용자는 Exception이나 RuntimeException이라는 클래스를 상속받아 새로운 Exception클래스를 만들어 낼 수 있다. public class 클래스이름 extends Exception{ ... } 새로운 Exception클래스를 만드는 이유는 무엇일까? Exception클래스 자체가 특별한 무언가를 하지는 않는다. 다만 이름 때문이다. 클래스 이름만으로도 어떤 오류가 발생했구나라는 것을 직관적으로 사용자에게 알게하려는 목적을 가지고 있다. 1. Exceptiond을 상속받은 클래스들은 Checked Except..
Exception 발생시키기 package Java02; public class ExceptionThrowExam { public static void main(String[] args) { // 정수에 값 넣기 int i = 10; int j = 0; try { int k = divide(i, j); System.out.println(k); } catch (IllegalArgumentException e) { System.out.println(e.toString()); } } // 정수 값 2개를 입력받고 그 정수를 나누어서 결과를 리턴하는 divide라는 메서드 정의 public static int divide(int i, int j) throws IllegalArgumentException { if (j == 0) { //ne..
throws throws는 예외가 발생했을 때 예외를 호출한 쪽에서 처리하도록 던져준다. package Java02; public class ThrowsExam { public static void main(String[] args) { // 정수에 값 넣기 int i = 10; int j = 0; int k = divide(i, j); System.out.println(k); } // 정수 값 2개를 입력받고 그 정수를 나누어서 결과를 리턴하는 divide라는 메서드 정의 public static int divide(int i, int j) { int k = i / j; return k; } } 실행 시 아래와 같이 오류가 발생 divide 메소드 내부에서 ArithmeticException이 발생하지 않게 하려면..
Exception - 예외 아래와 같이 코드를 실행해보자. package Java02; public class ExceptionExam { public static void main(String[] args) { int a = 10; int b = 0; int c = a/b; System.out.println(c); } } 위와 같이 실행시키면 아래와 같이 ArithmeticException이라는 것이 발생을 하면서 프로그램이 종료가 되어버린다. Exception이 발생하게 되면 발생한 지점부터 프로그램은 종료되어 버린다. java는 정수를 0으로 나눌 때 예외라는 것을 발생시킨다. 이렇듯 프로그램이 실행 중에 예기치 못한 사건을 예외라고 한다. 이렇게 예외상황이 발생했을 때 어떻게 해야 할까? 예외 상황에 대비하여 예외 처리를 ..
내부클래스 - local 클래스 / 익명클래스 세번째. 메소드 안에 클래스를 선언한 경우, 지역 중첩 클래스 또는 지역 클래스(local class)라고 한다. 지역중첩클래스 이름에서 느껴지듯이 이 내부 클래스가 인스턴스변수로 선언되는 것이 아니라 메소드안에서 선언되는 경우를 말한다. package Java02; import com.sun.org.apache.bcel.internal.classfile.InnerClass; public class InnerExam2 { public void exec() { // 메소드를 정의하고 이 메소드안에 Cal이라는 클래스가 생성되어 있는 경우 class Cal { // 클래스를 선언하는 거니깐 똑같이 필드를 선언할 수도 있고 // 메소드를 정의해 놓을 수도 있다. int value = 0; public void..
내부 클래스 - instance 클래스/ static 클래스 내부 클래스 : 클래스 안에 선언된 클래스 어느 위치에 선언하느냐에 따라서 4가지 형태가 있을 수 있다. 첫번째. 클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언되는 경우, 이런 경우를 보통 중첩클래스 혹은 인스턴스 클래스라고 한다. package Java02; public class InnerExam { // 내부클래스 // 필드를 선언하는 위치에 클래스를 선언하는 것이다. // 1. Cal이라는 클래스 선언 class Cal{ // 클래스를 선언하는 거니깐 똑같이 필드를 선언할 수도 있고 // 메소드를 정의해 놓을 수도 있다. int value = 0; public void plus(){ value++; } } } 이렇게 내부에 존재하고 있는 Cal이라는 객체를 사용하기위해서는 어떻게해야..