본문 바로가기

JAVA

(18)
다형성 - 객지설 5주차 다형성 객체의 타입에 따라 똑같은 명령이어도 서로 다른 결과를 얻는 것. 업캐스팅 (상향 형변환)하위 클래스 객체를 상위 클래스 참조 변수가 가리키는 것단, 참조 변수는 하위 클래스의 필드와 메소드는 접근 불가.ex. 부모(상위) 클래스 Shape / 자식(하위) 클래스 Circle      => Shape s1 = new Circle(); // 부모(상위) 클래스의 참조변수 s1가 하위 클래스 객체를 가리킴      => s1은 Shape 객체의 변수이므로, Shape로 부터 상속 받은 필드와 메소드만 사용이 가능하다.      => s1은 Shape 부모 클래스 참조 변수는 자식 클래스를 가리키긴 하지만, 무엇을 추가하였는지 알 수가 없다.      *어떤 멤버를 사용할 수 있는지는 변수의 타입에 의..
랩퍼 클래스 - 객지설 4주차 JAVA 객체 유형기초 자료형(정수형, 실수형 등등)을 제외한 모든 것이 객체임.  그런데 기초 자료형이 객체로 쓰여야 할 때가 있음. 에를 들어 JAVA에서 Vector는 객체만 저장 가능함. 그래서 Vector에 기초 자료형을 넣고 싶다면 객체로 포장해야 함. => 이때 랩퍼 클래스가 사용 됨. 기초 자료형의 객체 만드는 방법int i = 100; //기초 자료형으로 선언Integer obj = new Integer(i); // Integer 랩퍼 클래스 객체 만듦 (오류 남)//바로 선언도 가능함String s = Integer.toString(100);int i = Integer.parseInt("100");=> JAVA 에는 각 기초 자료형에 대하여 해당되는 랩퍼 클래스가 존재함 랩퍼 클래스의 ..
객프 13주차 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가짐. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원. 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함. 하지만 인터페이스(interface)는 오로지 추상 메소드와 상수만을 포함. 자바에서 인터페이스를 선언하는 방법은 클래스를 작성하는..
객프 11주 추상클래스 하나 이상의 추상 메소드를 포함하는 클래스 *추상메소드 : 완전하게 구현되어 있지 않은 메소드 (중괄호 없이 선언됨) 추상 클래스라는 것을 알려주기 위해 abstract를 붙여야 함. abstract class Shape3 { int x, y; public void translate (int x, int y) { this.x = x; this.y = y; } public abstract void draw(); }; class Rectangle2 extends Shape3 { int width, height; public void draw() { System.out.println("사각형 그리기 메소드"); } }; class Circle2 extends Shape3 { int radius; p..
객프 10주차 - 상속은 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미. - 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성가능. - 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 라고 함. 1. 기존에 작성된 클래스 재사용 가능 2. 자식 클래스에서 중복되는 멤버를 작성하지 않아도 됨. 3. 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련함. 부모 클래스의 모든 특성을 물려받아 새롭게 작성된 클래스 -> 부모 클래스에 새로운 필드를 하나 추가하면, 자식 클래스에도 자동으로 해당 필드가 추가된 것처럼 동작함. - 자식 클..
객프 10주차 객체의 생성과 소멸 다른 프로그래밍 언어 : 객체를 제거하지 않으면 메모리 공간 부족 -> 소멸하는 과정 필요 자바 : 가상머신기계에서 자동으로 객체를 제거해주기 때문에 별도의 소멸 과정 필요X *자바 가비지 컬렉터 : 사용하지 않는 객체를 자동으로 모으는 공간 => 지워달라는 명령어를 사용할 수 있으나, 실행하진 않음. => JVM이 알아서 작동 1. 코드 2. 사용하지 않는 객체 선택 3. 삭제 4. 압축 인수전달방법 1. Call-by-value : 인수값 전달 => return이 필요함. 지역변수이기 때문에 클래스를 벗어나면 값 전달X 2. Call-by-reference : 주소값 전달 => return 필요하지 않음. 클래스를 벗어나도 값 전달O 정적멤버(static) VS 인스턴스 멤버 정적..
Power JAVA 개정3판 CHAPTER01 답 1번 : 2 2번 : 객체 지향적 3번 : 바이트코드가 생성되어 자바가상기계로 운영되기 때문에 4번 : 다른 컴퓨터에서 컴파일을 하지 않아도 실행가능하지만 네이티브 코드의 속도보단 느리다. 5번 : 실행 가능하다 6번 : .exe 7번 : SE는 임베디드 등 EE는 기업용 애플리케이션 등 8번 : JDK는 개발하기 위해 JRE는 실행하기 위해 9번 : 4번 10번 : 파일 이름 - Test / This is a Test 11번 : Welcome! 컴파일 오류는 발생하지 않는다. 1번 : int, float 등등 2번 : ? 3번 : 객체 생성? 4번 : 3 5번 : 5 6번 : (a) long int size; (b) var height = 183.2; (c) char ch = '가'; (d) Strin..
자바 소개 학습목표 자바 언어의 특징을 설명할 수 있나요. 자바 프로그램이 실행되는 과정을 설명할 수 있나요? 자바를 설치할 수 있나요? 자바를 명령어 버전으로 컴파일하고 실행할 수 있나요? 이클립스를 이용하여 자바 프로그램을 작성할 수 있나요? 1.1 자바의 역사 자바는 현재 컴퓨터 업계에서 가장 많이 사용되는 프로그래밍 중 하나. 자바는 방대한 라이브러리와 다양한 실행 환경을 가지고 있는 하나의 거대한 플랫폼. 자바를 사용하면 현대적이고 쾌적한 문법 구조 사용 가능 그래픽, 네트워킹, 데이터베이스 쉽게 구현 자바 -> 안드로이드 어플리케이션 자바스크립트 -> 웹 페이지 제작 언어 제임스 고슬링이 창시 -> 가정용 전자제품에 사용할 컴퓨터 언어를 설계하다가 만들어짐. 그래서 언어 간결 CPU 의존성 없는 언어. ..