Java
[자바의 정석] Ch 6. OOP I 연습문제 풀이
🧩 학습 단원 : 객체 지향 프로그래밍 I (OOP) 📚 학습 도서 : (남궁 성 저) ✅ 오답 정리 완료() [6-1] 다음과 같은 멤버변수를 갖는 SutdaCard클래스를 정의하시오. ✅ public class SutdaCard { int num; boolean isKwang; } [6-2] 문제6-1에서 정의한 클래스에 두 개의 생성자와 info()를 추가해서 실행 결과와 같은 결과를 얻도록 하시오. ❎✅ info() 반환형을 String으로 정의했다. 결과값 1K에서 num으로부터 얻은 숫자 또한 현재는 문자열로 출력된 것이다. 또, this.과 this()의 사용을 잘 구분해 활용할 수 있도록 하자. 기본 생성자에서 두 줄로 나누어 썼던 것을 this(1, true)처럼 간추릴 수 있다. 3 1..
[JAVA] 11. 제네릭 클래스 | 와일드카드
목차 제네릭 제네릭 클래스 사용 2-1. 타입 변수 선언 2-2. 타입 결정 및 인스턴스 생성 2-3. 타입 제한 extends 와일드카드 1. 제네릭 제네릭(generic)의 사전적인 의미는 일반적인, 포괄적인, 통칭의 것이다. 자바에서 제네릭이란 데이터 타입의 일반화을 말한다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 특정화하지 않다가, 컴파일 시에 지정한다. 제네릭을 활용하면 형변환 및 타입 검사에 들어가는 코드들을 생략할 수 있다. instanceof로 비교하거나 다운캐스팅 작성하는 과정이 불필요해진 것이다. 이러한 제네릭은 JDK 1.5버전부터 추가된 문법이다. ✅ 제네릭에 대해 이해할 수 있다. ✅ 제네릭의 목적에 대해 이해할 수 있다. ✅ 제네릭 클래스에 대해 이해할 수 있다...
[JAVA] 10-2. Wrapper | 파싱(parsing) | Date | Calendar
목차 Wrapper 클래스 1-1. 박싱(Boxing) 1-2. 언박싱(UnBoxing) 1-3. 파싱(parsing) 1-4. valueOf().toString(); Date 클래스 2-1. 기본 생성자 Date() 2-2. Date(long date) Calendar 클래스 3-1. getInstance() 3-2. 후손클래스 GregorianCalendar 3-3. get(Calendar.상수필드) ✅ Wrapper 클래스 통해 파싱(parsing) 처리할 수 있도록 하자! 1. Wrapper 클래스 8가지 기본자료형의 데이터들을 객체로 다뤄야 할 때 이를 인스턴스화 해주는 클래스를 래퍼클래스(Wrapper 클래스)라고 한다. 이름처럼 다른 무언가로 감싸서 객체로서 기능하게 만든다고 볼 수 있다. ..
[JAVA] 10-1. API | Object | String | StringBuilder
목차 Object 1-1. toString() 1-2. equals() 1-3. hashCode() String 2-1. String 제공 메소드들 2-2. String 인스턴스 생성 방법 2-3. 구분자 사용한 String 분리 2-4. 이스케이프(escape) 문자 StringBuilder와 StringBuffer 3-1. String과 StringBuilder 비교 3-2. StringBuilder의 toString()과 hashCode() 3-3. StringBuilder제공 메소드 API(Application Programming Interface) 운영체제나 프로그래밍 언어가 제공하는 기능들을 응용 프로그램에서 사용할 수 있도록 제어 가능하게 만든 인터페이스를 말한다. '추상클래스와 인터페이스..
[JAVA/수업 과제 practice] 다형성 Lv. 1~2
✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2022.01.09) BASIC1. 사각형과 원의 면적, 둘레 구하기(클래스) ✅ Rectangle 면적 : 1473.15 Rectangle 둘레 : 154.4 Circle 면적 : 754.7676350249478 Circle 둘레 : 97.38937226128358 Application.class 객체 생성한 뒤 메소드 호출하는 방법보다 new 연산자 사용해 호출하는 것이 간단할 수 있다. 특히 이 경우는 한 번뿐인 호출이기 때문에 그렇다. package com.greedy.level01.basic.polymorphism; public class Application { public static void main(String[] args) { //S..
[JAVA/수업 과제 practice] 상속 Lv. 1~2
✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2022.01.06) BASIC1. 상속 구조를 통한 학생-직원 관리 프로그램 name=홍길동, age=20, height=178.2, weight=70.0, grade=1, major=정보시스템공학과 name=김말똥, age=21, height=187.3, weight=80.0, grade=2, major=경영학과 name=강개순, age=23, height=167.0, weight=45.0, grade=4, major=정보통신학과 이름 : 박 나이 : 26 키 : 180 몸무게 : 71 급여 : 10000000 부서 : 기획부 계속 입력하시겠습니까? (y/n) : n name=박, age=26, height=180.0, weight=71.0, sa..
[JAVA] 9. 다형성 | 추상클래스 | 인터페이스
목차 다형성 1-1. 다형성의 정의 1-2. 다형성의 특징 동적바인딩 연산자 instanceof 클래스 형변환 다형성 활용 예시 5-1. 다형성과 객체배열 5-2. 다형성과 매개변수 5-3. 다형성과 리턴 타입 추상클래스와 인터페이스 6-1. 추상클래스 6-2. 인터페이스 6-3. 추상클래스와 인터페이스 비교 다형성은 캡슐화, 상속과 함께 객체 지향 프로그래밍(OOP, Object Oriented Programming)의 3대 특징 중 하나이다. 1. 다형성 1-1. 다형성의 정의 하나의 인스턴스가 여러 타입을 가질 수 있다는 의미이다. Student는 Person이자 Object이기도 하다. 상속의 정의를 다룰 때 멤버(필드, 메소드) 외에 타입 또한 상속이 된다고 표현했다. 여기서는 그 타입의 상속을..
[JAVA] 8. 상속 | super | 오버라이딩
목차 상속 상속의 장단점 2-1. 상속의 장점 2-2. 상속의 단점 is-a 관계 super.와 super(); 4-1. super. 4-2. super(); 4-3. this()와 super(), this.와 super. 접근제한자 protected 오버라이딩(overriding) 객체 지향 프로그래밍(OOP, Object Oriented Programming) 3대 원칙이 캡슐화와 추상화, 상속, 다형성이다. 그 중 상속에 대해 배워보자. 1. 상속 SuperA a; △ ↑ ChildB b=a; 상속에는 부모클래스와 자식클래스란 개념이 등장한다. 부모의 멤버(필드, 메소드)를 자식이 물려 받아 마치 자신의 멤버인 것처럼 사용할 수 있도록 만든 기술이다. 멤버 외에 타입 또한 상속이 된다. 여기서 이어..
[JAVA/수업 과제 practice] 객체배열 Lv. 1~2
✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2022.01.04) BASIC1. 학생 정보 기록 프로그램 생성자를 이용한 초기화 / 설정자를 이용한 초기화 장단점을 구분하여 사용해야 한다. 이미 존재하는 정보 수정이 필요할 때 설정자(setter)를 쓰고, 초기에 많은 매개변수를 사용해야 할 때는 생성자를 이용함이 적합하다. index를 별도 변수에 지정하여 출력문에도 활용하도록 한다. 입력 값을 판별할 때 (!('y' == ch || ch == 'Y')) 경우의 수를 모두 다룰 수도 있다. 하지만 String 클래스의 메소드 중 toLowerCase 소문자로 만들어주는 메소드를 쓰면 sc.nextLine().toLowerCase().charAt(0); (anwer != 'y') 조건만 판단해도..