반응형

자바 71

자바 기초 공부 일지 31. 래퍼 클래스, Number 클래스

● 래퍼 클래스 class UseWrapperClass { public static void showData(Object obj) { System.out.println(obj); } 상기의 코드를 보면 클래스 안에 인스턴스를 요구하는 메소드가 있습니다. 이 메소드의 인수 타입 중 Object 타입은 int, float 등 과는 다른 타입이기 때문에 이 메소드를 통해서 정수 혹은 실수를 출력하려면 해당 값을 인스턴스화 해야 합니다. public static void main(String[] args) { Integer iInst = new Integer(3); // 기본 자료형을 감싸는 클래스 래퍼 클래스 showData(iInst); showData(new Double(7.15)); // 기본 자료형을 ..

자바 기초 공부 일지 30. clone 메소드

Obejct 클래스에는 clone() 메소드가 정의되어 있습니다. clone 메소드는 해당하는 객체의 모든 필드를 복사하여 새로운 객체에 넣어 반환하는 동작을 수행합니다. 즉, 대상을 똑같이 만들어주는 기능입니다. 여기에는 의무사항이 있는데, clone 메소드의 호출을 허용하려면 Cloneable 인터페이스를 구현해야 합니다. class Point implements Cloneable { // 복사할 수 있는 Point 클래스 생성 private int xPos; // 변수 xpos; 선언 private int yPos; // 변수 ypos; 선언 이렇게 클론 메소드의 호출을 허용하려는 클래스에는 Clonable 인터페이스를 구현해야 합니다. protected native Object clone() th..

자바 기초 예제문제 6. equals() 메소드를 오버라이딩 해서 좌표 비교 (공부중)

x, y 좌표를 나타내는 Point 인스턴스 간의 좌표값 비교를 위해 equals 메소드를 오버라이딩 해보고, main에서 직접 실행 결과까지 확인해보기 package day17; /* * x, y 좌표를 나타내는 Point 인스턴스 간의 좌표값 비교를 위해 * equals 메소드를 오버라이딩 해보고, main에서 직접 실행 결과까지 확인해보기 */ class Point{ int x; int y; Point(int x, int y){ this.x = x; this.y = y; } @Override public boolean equals(Object obj) { Point compare = (Point)obj; if(this.x == compare.x && this.y == compare.y) { retu..

자바 복습. 인터페이스

● 인터페이스 : 어떤 객체를 만들고 싶은지, 혹은 만들어야 하는지에 대한 약속 추상메소드 : 몸통없이 선언부만 있는 메소드로, 사용할 수 없는 미완성 상태의 메소드 interface CAT{ void eating(); void sleeping(); } 나중에 이것으로 코드를 만들 것이라는 준비과정. 구현하기 위한 틀. interface Cat{ String species = "고양이과"; void eating(); void sleeping(); } 인터페이스 내의 추상메소드 : public abstrack 메소드 이다. 따로 작성하지 않아도 컴파일러에 의한 자동 처리. 인터페이스 내의 변수 : public static final 변수. 즉 상수이다. 따로 작성하지 않아도 컴파일러에 의한 자동 처리. S..

자바 기초 공부 일지 29. 자바 가상머신의 메모리 할당

운영체제 입장에서 자바 가상머신은 일반프로그램과 동일한 프로그램 중 하나이므로 자바 프로그램이 두 개 실행되면, 가상머신도 두 개가 실행 됩니다. 각 가상머신마다 운영체제가 메모리를 할당합니다. 자바는 해당 메모리를 효율적으로 관리하기 위해 영역을 나눕니다. - 메소드 영역 (Method Area) - 메소드의 바이트코드, static 변수 - 스택 영역 (Stack Area) - 지역변수, 매개변수 - 힙 영역 (Heap Area) - 인스턴스 - 코드 영역(Code Area) - 실행할 프로그램의 코드가 저장되는 영역, 텍스트 영역 각 영역을 자세하게 살펴볼게요. ● 메소드 영역 class Boy { static int average = 0; public void Run() {....} } class..

자바 기초 공부 일지 28. 예외의 처리 try~catch 구문

파이썬에서 exception 처럼, 자바에서 예외의 상황을 차리 하기 위한 클래스가 있습니다. https://blue-dot.tistory.com/28 파이썬 공부 요약 노트 4. 예외, 오류 ● 오류의 종류 - 구문 오류 : 문법이 잘못 되어서 실행할 수 없는 문제 -> 코드를 다시 써야 해결 된다. - 실행 예외 : 문법은 맞지만 논리가 잘못 되어서 실행할 수 없는 문제 -> 예외. 앞뒤로 코드 blue-dot.tistory.com 우선 자바에서 예외를 알리기 위한 클래스가 다음과 같습니다. java.lang.ArithmeticException 수학 연산에서의 오류 상황을 의미하는 예외 클래스 java.util.InputMismatchException 클래스 Scanner를 통한 값의 입력에서의 오류..

자바 기초 공부 일지 27. 추상 클래스

추상 클래스란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드입니다. 추상 클래스 만들 때의 조건은 하나 이상의 추상 메소드를 포함시키는 것입니다. 즉, 추상 메소드를 하나 이상 포함하는 클래스가 추상클래스입니다. abstract class Tree{ abstract void makeFruit(); } - 추상 클래스 : 추상 메소드를 하나 이상 포함하는 클래스, 클래스의 앞에도 abstract 를 작성해주어야 합니다. - 추상 메소드 : 몸통이 없고, 앞에는 abstract가 붙는 메소드 입니다. 추상 클래스도 참조 변수를 만들지만, 인스턴스 생성은 불가합니다. 추상 클래스는 일반 메소드도 자유롭게 추가할 수 있습니다. 인터페이스 변수는 정적인 상수이나, 추상 클래스 변수는 그냥 변수입니..

자바 기초 공부 일지 26. 인터페이스interface , 구현implements

● 인터페이스 : 규약, 접점 user interface (UI) 유저 인터페이스는 결구구 사용자에게 제공하는 규약이자 접점 입니다. 사용자가 그것을 통해서 접근할 수 있는 접점입니다. 자바에서 인터페이스는 추상 메소드를 담고 있는 블록입니다. 추상 메소드란 몸통이 없는 블록입니다. 즉 메소드의 몸체 없이 선언부분만 있는 메소드이며, 그로인해 인스턴스를 만들 수 없고 참조 변수 선언만 가능한 메소드입니다. 인터페이스 클래스는 interface 키워드를 사용해서 접근하며, 다음과 같이 선언합니다. 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; ... public abstract 메소드이름(매개변수목록); ... } 인터페이스 클래스 또한 클래스이지..

자바 기초 공부 일지 25. Object 클래스, final 선언, @Override 오버 라이딩

모든 클래스들은 Object 클래스를 상속합니다. 만약 상속을 하는 클래스가 없다면 자동적으로 컴파일이 java.lang.Object 클래스를 상속한 것으로 인식합니다. ex) class MyClass extends Object {...} 내가 작성한 클래스가 어떤 클래스를 상속하고 있는지 확인하기 위해서는 Source -> Override / Implement Mathods 탭을 클릭하시면 확인할 수 있습니다. 상속하고 있는 클래스들의 목록이 뜹니다. Object를 상시 상속하고 있는 것을 확인할 수 있습니다. tip) 여기서 사용하고 싶은 것들을 클릭하면 오버라이드 할 수 있는 형태들이 자동으로 양식 완성 됩니다. ok를 누르면 출력 화면에서 확인할 수 있습니다. 만약 클래스가 다른 클래스를 상속한다..

자바 기초 예제문제 5. 상속 기반으로 인맥 관리 프로그램 관리 대상 묶기

대학 동창과 직장동료의 이름, 전공(부서), 전화번호 정보를 저장하고 관리하는 프로그램을 만들 때 상속을 기반으로 중복되는 클래스 메소드들을 클래스 상속관계로 묶는 것을 예제로 만들어보겠습니다. ex) 이름 : ㅇㅇㅇ 전공 : ㅇㅇㅇㅇㅇ 전화 : 000 - 0000 - 0000 이름 : ㅇㅇㅇ 부서 : ㅇㅇㅇㅇ 전화 : 000 - 0000 - 0000 우선 처음은 단순하게 관리 대상이 둘 이므로 두 개의 클래스를 정의하는 것부터 해볼게요. 먼저 대학 동창 목록을 정의하는 클래스입니다. class UnivFriend{// 대학 동창 목록 private String name;// 이름 문자열 선언 private String major; // 전공 문자열 선언 private String phone; // 전화..

반응형