반응형

JAVA 43

자바 완전 정복 2장 연습문제 풀이

Q1. 다음 중 변수나 상수 선언 명령으로 적절한 것은 O, 그렇지 않은 것은 X를 표시하고, 적절하지 않은 것에는 그 이유를 적으시오. 구분 명령 가능 여부 적절치 않은 이유 변수 선언 boolean flag; O byte public; X 자바 예약어 사용 short data$; O char 이름; O int name3; O long 3name; X 첫 글자에 숫자 입력 상수 선언 final double USER_DATA; O final int SMY_DATA; O final float HELLO^^; X 지정 외 특수문자 사용 Q2. 다음 코드에서 변수 a, b, c가 메모리에 생성되는 행 번호와 사라지는 행 번호를 쓰시오. public static void main(String[] args) {/..

자바 완전 정복 1장 연습문제 풀이

Q1. 자바 프로그램 개발 환경에 필요한 요소 중 자바 가상 머신(JVM), 자바 개발 도구(JDK), 자바 개발 환경(JRE)의 포함관계를 쓰시오. - JDK ⊃ JRE ⊃ JVM Q2. 다음은 이클립스에서 자주 사용되는 단축키다. 를 보고 표를 완성하시오. : Ctrl+O, Ctrl+Shift+O, Ctrl+/, Ctrl+Shift+F, Ctrl+ + 동작 단축키 자동 임포트 Ctrl+O 1줄 주석 설정 및 해제 Ctrl+/ 자동 정렬 Ctrl+Shift+F 폰트 확대 Ctrl+ + Q3. 자바의 가장 큰 특징인 플랫폼 독립성을 바르게 기술한 것을 고르시오. ① 자바 가장 머신을 사용해 하나의 소스 코드를 컴파일한 결과러, 어떤 플랫폼에서든 실행할 수 있다. ->True ② 윈도우용은 윈도우용 자바 ..

추상클래스와 인터페이스

추상 메서드 : 메서드의 본체가 완성되지 않은 미완성 메서드 중괄호 안이 비어 있는 게 아니라 아예 존재하지 않은 메서드이기 때문에 명령어가 끝남을 알리는 세미콜론으로 끝나야 한다. 문법) abstract 리턴타입 메서드명(입력매개변수); · 추상 클래스는 추상 메서드(미완성 메서드)를 하나라도 포함하고 있으면 추상 클래스임을 명시를 해줘야 한다. 하지만 추상클래스 안에 추상 메서드가 꼭 있어야 하는 것은 아니다. 그저 하나라도 존재하면 명시해 줘야 한다는 것이다. 문법) abstract class 클래스명{} ※ 메서드 완성 기준 : 중괄호의 존재 여부. 중괄호가 있고 그 안에 내용은 아무 것도 없어도 완성 메서드로 취급된다. 내용이 아무 것도 없는 완성 메서드는 아무 일도 하지 않는 작동을 한다. 추..

자바 제어자-2

final 제어자 필드, 지역 변수, 메서드, 클래스 앞에 위치할 수 있다. 각 위치마다 의미가 다르다. · final 변수 : 한 번 대입된 값을 수정할 수 없다(변수가 저장한 최종값. 최종 변수) final 필드의 초기화는 반드시 생성자에서 한다. 일반 필드와 달리 강제 초기화되지 않기 때문이다. ※ final 변수에 원래 값을 또 대입해도 될까? final 변수 값을 변경할 때는 값을 기준이 아니라 한 번 대입을 했는지 안했는 지가 초기화할 수 있는 기준이 된다. 값이 동일하던 안하던 필드에 값이 한 번 대입되면 이후에 또 값을 입력하는 행위는 불가하다 · 메모리 구조 필드는 일단 멤버이기 때문에 final이든 아니든 객체 속에 포함되지만 객체 생성 시 final 필드값은 상수 영역에 1개 복사된다..

JAVA/공부 2022.07.02

클래스 상속과 다형성

상속 부모 클래스의 멤버를 내려받아 자식 클래스 내부에 포함시키는 자바 문법 요소 -> 부모 클래스는 자식 클래스들의 공통적인 특징을 가지고 있는 클래스 · 장점 1. 코드의 중복성이 제거된다 2. 클래스의 다형적 표현이 가능하다 ※ 다형적 표현 1개의 객체를 여러 형태로 표현할 수 있는 특성 · 문법 class 자식클래스 extends 부모클래스 { //.. } ※ 자식 클래스는 부모클래스를 다중 상속 불가 -> 모호성 발생 가능하기 때문에. (부모 클래스가 여러 자식 클래스를 상속하는 건 무관) · 상속 시 메모리 구조 class A { int m; void abc() {} } class B extends A { int n; void bcd() {} } B b = new B(); 자식 클래스 B의 객..

JAVA/공부 2022.07.02

자바 제어자-1

접근 지정자 접근 지정자는 클래스 내부 4요소 앞에 붙을 때와 클래스 자체에 붙을 때를 나눠서 생각해야 한다. · 멤버 및 생성자에 붙는 접근 지정자 접근 지정자의 종류 1. public : 동일 패키지 안 모든 클래스 + 다른 패키지의 모든 클래스에서 사용 가능 2. protected : 동일 패키지 안 모든 클래스 + 다른 패키지의 자식 클래스에서 사용 가능 3. default : 동일 패키지 안 모든 클래스에서 사용 가능 4. private : 자신의 클래스 내부에서만 사용 가능 ※ 같은 패키지의 클래스는 같은 폴더에 위치한 클래스 ※ 접근 지정자를 지정 안 할 시 모든 클래스 내부 구성 요소는 default 접근 지정자 · 클래스에 붙는 접근 지정자 클래스에선 public, default 접근 지..

JAVA/공부 2022.07.02

클래스 외부 구성 요소

클래스 외부 구성 요소 : 패키지, 임포트, 외부 클래스 패키지 비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아 둔 폴더 ※ 여러 개의 패키지를 생성할 수도, 아예 생성하지 않아도 무관하다. 아예 생성 안하는 경우엔 default package에 해당된다. 생성된 패키지는 src 폴더의 하위 폴더에 위치한다. 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일한 하위 폴더가 생성된다. 패키지 지정 안 할시 src 폴더 아래에 소스 파일이 바로 위치한다. 패키지를 사용하면 클래스가 저장되는 공간이 분리돼 클래스명의 충돌을 방지할 수 있다. 임포트 다른 패키지 내의 클래스를 사용하기 위한 문법 요소. ※ 프로그램이 동작할 떄일반적으로는 자신의 패키지 내부에 위치한 클래스만 사용할 수 있다. ..

JAVA/공부 2022.07.02

클래스 내부 구성 요소

필드 필드 : 클래스에 포함된 변수. 객체 속성값 지정 가능. -> 클래스 중괄호에 포함 -> 힙에 저장 지역 변수 : 메서드에 포함된 변수. -> 메서드 중괄호에 포함 -> 스택에 저장 -> 둘이 어떤 중괄호에 포함되었는지에 따라 구분 가능 · 필드와 지역변수의 차이점 ①. 생성되는 메모리 위치가 다르다. 스택 메모리에 저장되는 변수는 시간이 지나면 JVM이 알아서 삭제하지만 힙 메모리 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 삭제되지 않는다. - 어떠한 참조 변수도 객체를 가리키지 않을 때 객체가 삭제된다. 프레임 : 1개의 메서드 안에 선언된 모든 지역 변수들의 집합 ②. 초깃값 필드는 초기화하지 않아도 강제로 초기화된다, 지역변수는 강제 초기화되지 않기 때문에 직접 초기화하지 않으면 저..

JAVA/공부 2022.07.02

클래스와 객체

객체 : 사용할 수 있는 실체 클래스 : 객체를 만들기 위한 설계도 ※ 클래스를 쓰는 이유 변수 < 배열 < 구조체 < 클래스 · 변수 : 다양한 형태의 데이터를 저장하게 해 가각의 데이터를 저장하는 문법 요소 · 배열 : 같은 자료형인 변수를 묶어서 관리 가능한 문법 요소 · 구조체 : 서로 다른 자료형을 묶어서 관리 가능한 문법 요소 · 클래스 : 다양한 자료형의 데이터를 묶어서 관리하기도 하지만 데이터 처리하는 다양한 기능도 함께 관리하는 문법 요소 클래스/인터페이스 일반메서드/추상메서드 클래스 문법) class 클래스명{ //.. } package ...;//패키지 import ...;//임포트 class A {//외부 클래스 int a;//필드 A() {...}//생성자 double abc() ..

JAVA/공부 2022.07.02

배열 성적 처리 프로그램

2022.06.23 한 사람 성적 처리 프로그램 입력 : 이름, 국어, 영어, 수학 연산 : 총점, 평균 출력 : 이름, 국어, 영어, 수학, 총점, 평균 //변수 선언 아래 세 항목은 바꾸지 않는다. String name; int[]score; float avg; Scanner sc = new Scanner(System.in); //메모리 할당 및 입력 System.out.println("성적 처리 프로그램"); System.out.print("이름을 입력하세요 : "); name = new String(sc.next()); System.out.println("국어, 영어, 수학순으로 성적을 입력하세요."); score = new int[4]; for(int i=0; i

JAVA/공부 2022.06.26
반응형