분류 전체보기854 java.lang패키지와 유용한 클래스(2) 얕은 복사와 깊은 복사 clone()은 단순히 객체에 저장된 값을 그대로 복제할 뿐, 객체가 참조하고 있는 객체까지 복제하지 않는다. 예제 9-8에서처럼 기본형 배열인 경우에는 아무런 문제가 없지만 ,객체 배열을 clone()으로 복제하는 경우 원본과 복제본이 같은 객체를 공유하므로 완전 한 복제라고 보기 어렵다. 이러한 복제(복사)를 얕은복사(shallow copy)라고 한다. 얕은 복사에서는 원본을 변경하면 복사본도 영향을 받는다. 반면에 원본이 참조하고 있는 객체까지 복제하는 것을 깊은복사(deep copy)라고 한다. 깊은 복사에서는 원본과 복사본이 서로 다른 객체를 참조하기 때문에 원본의 변경이 복사본에 영향을 미치지 않는다. 예를 들어 Circle클래스가 아래와 같이 Point타입의 참조변수를.. 2021. 6. 24. 큐 보호되어 있는 글 입니다. 2021. 6. 23. java.lang패키지와 유용한 클래스(1) java.lang 패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기 때문에 java.lang 패키지의 클래스들은 import문 없이도 사용할 수 있게 되어있다. 그동안 String클래스나 System클래스를 import없이 사용할 수 없었던 이유가 바로 java.lang 패키지에 속한 클래스들이기 때문이었던 것이다. 우선 java.lang패키지의 여러 클래스들 중에서 자주 사용되는 클래스 몇가지를 학습한다. Object클래스 클래스의 상속을 학습할 때 Object클래스에 대해서 이미 배웠지만, 여기서는 보다 자세히 알아보자. Object클래스는 모든 클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에서 바로 사용이 가능하다. 메서드 :설명 protected.. 2021. 6. 23. 예외처리(5) 사용자 정의 예외 만들기 기존의 정의된 예외 클래스 외에 필요에 따라 프로그래머가 새로운 예외 클래스를 정의하여 사용할 수 있다. 보통 Exception클래스 또는 RuntimeException 클래스로부터 상속받아아 클래스를 만들지만, 필요에 따라서 알맞은 예외 클래스를 선택할 수 있따. 가능하면 새로운 예외클래스를 만들기보다 기존의 예외클래스를 활용하자 class MyException extends Exception{ MyException(String msg) { //문자열을 매개변수로 받는 생성자 super(msg);//조상인 Exception클래스의 생성자를 호출한다. } } Exception 클래스로부터 상속받아서 MyException 클래스를 만들었다. 필요하다면, 멤버변수나 메서드를 추가할 .. 2021. 6. 23. 배열 보호되어 있는 글 입니다. 2021. 6. 22. 예외처리(4) finally 블럭 finally 블럭은 예외의 발생 여부에 상관없이 실행되어야할 코드를 포함시킬 목적으로 사용된다. try-catch문의 끝에 선택적으로 덧붙여 사용할 수 있으며, try-catch-finally의 순서로 구성된다. try{ //예외가 발생할 가능성이 있는 문장들을 넣는다. }catch(Exception1 e1){ //예외처리를 위한 문장을 적는다. }finally{ //예외의 발생여부에 관계없이 항상 수행되어야하는 문장들을 넣는다. //finally블럭은 try-catch문의 맨 마지막에 위치해야 한다. } 예외가 발생한 경우 try→catch→finally의 순으로 실행되고, 예외가 발생하지 않은 경우에는 try→finally의 순으로 실행된다. public class Finally.. 2021. 6. 22. 이전 1 ··· 131 132 133 134 135 136 137 ··· 143 다음