본문 바로가기
반응형

분류 전체보기256

chap_09. Wrapper 클래스 Wrapper 클래스의 기능 : int, double, float, char 같은 기본자료형을 객체형태로 만들어서 사용할 수 있도록 해주는 역할 int 자료형의 Wrapper 클래스 -> Integer double -> Double, float -> Float, char -> Character 2023. 6. 28.
chap_09. 제네릭 클래스 여러 자료형을 받아서 한번에 처리하는 메소드를 제네릭스를 통해 생성해보았다. https://nossodia.tistory.com/234 chap_09. 제네릭스 제네릭스는 다양한 타입의 객체를 지원하는 클래스, 인터페이스, 메소드를 정의하는 방법으로 똑같은 동작을 하는 클래스, 메소드를 여러번 만들 필요없이 한번만 정의하면 여러 타입에서 지원 nossodia.tistory.com 이번 시간에는 예제를 통해 제네릭스 클래스에 대하여 학습해보자. 만약, 특정 카페에서 주문이 완료되면 주문번호 또는 닉네임을 불러 안내해주는 로직을 코드로 작성한다고 생각해보자. 우선 주문완료 시 안내하는 코드를 분류해놓을 coffee 패키지를 생성하였다. 1. 주문번호로 안내하는 경우 coffee 패키지 내 CoffeeByNu.. 2023. 6. 21.
chap_09. 제네릭스 제네릭스는 다양한 타입의 객체를 지원하는 클래스, 인터페이스, 메소드를 정의하는 방법으로 똑같은 동작을 하는 클래스, 메소드를 여러번 만들 필요없이 한번만 정의하면 여러 타입에서 지원할 수 있도록 한다. 아래 예제를 통해 이해해보자. 각 자료형 int, double, String의 배열을 생성하고 해당 데이터를 순차적으로 출력하는 메소드를 생성하였다. 위의 printIntArray, printDoubleArray, printStringArray 메소드를 확인하면 자료형만 다르고 똑같은 코드가 반복되는 것을 볼 수 있다. 만약 위 자료형 외에 또 다른 자료형(long, float..)이 추가된다면 메소드도 추가해야할 것이다. 이런 경우에 제네릭스를 활용해볼 수 있다. private static void p.. 2023. 6. 21.
Chap_08.인터페이스(Interface) 앞서 배운 추상클래스는 완성되지 않은 클래스였다고 한다면, 인터페이스는 뼈대만 제공하는 구조이다. 상속(extends) : 부모를 하나만 가질 수 있는 단일 상속만 가능한 특징이 있다. 추상클래스 시간에 생성한 FactoryCam과 SpeedCam 클래스에 아래 메소드를 추가한다고 생각해보자. 1) detect() : 화재 or 사고 감지 기능 2) report() : 화재 or 사고 신고 기능 이처럼 각 클래스 별로 겹치는 메소드를 선언하게 되면 관리가 어려워진다. 이를 인터페이스를 통해 코드의 중복을 줄이고 개선된 구조로 만들 수 있다. 인터페이스는 [인터페이스를 생성할 패키지명] 마우스 우클릭 -[new]-[JavaClass]-[Int 위와 같이 Reportable 이라는 인터페이스를 생성하고 re.. 2023. 5. 10.
Chap_08. 추상 클래스(AbstractClass) 데이터 추상화(Data Abstraction)는 불필요한 정보는 숨기고 꼭 필요한 정보만 공개하는 과정을 말한다. abstract 키워드를 통해 추상클래스와 추상메소드를 생성할 수 있다. 1) 추상클래스 : 아직 완성되지 않은 클래스이기 때문에 객체로 만들수 없고 클래스를 상속해서 구체적으로 동작을 정의해야만 객체로 만들 수 있다. 2) 추상메소드 : 추상클래스 또는 인터페이스에서 사용가능한 껍데기만 있는 메소드이다. 추상클래스는 아래와 같이 abstract 키워드를 추가하여 생성한다. public abstract class Camera { ... } 위와 같이 추상클래스 Camera를 생성하고 다른 클래스에서 Camera 객체를 생성하려고 하면 아래와 같이 오류가 발생된다. 추상 클래스는 아직 완성되지.. 2023. 5. 10.
Quiz. 클래스를 이용하여 햄버거를 자동으로 만드는 프로그램을 작성하시오 클래스를 이용하여 햄버거를 자동으로 만드는 프로그램을 작성하시오. 1. 햄버거의 종류는 햄버거, 치즈버거, 새우버거 3가지이다. 2. 각 버거는 각각의 클래스로 생성한다. 3. 버거 이름을 담기 위한 name 변수를 정의한다. 4. 재료 정보를 표시하는 cook() 메소드를 정의한다. - 햄버거 : 양상추, 패티, 피클 - 치즈버거 : 양상추, 패티, 피클, 치즈 - 새우버거 : 양상추, 패티, 피클, 새우 5. 공통부분은 상속 및 메소드 오버라이딩으로 처리한다. 6. 모든 클래스는 하나의 파일에 정의한다. package chap_07; public class _Quiz_07 { public static void main(String[] args) { HamBurger[] hamBurgers = new .. 2023. 5. 3.
Chap_07. 열거형(Enum) 특수한 형태의 클래스인 열거형에 대해 알아보자. 열거형 (Enum) : 상수들의 묶음으로 아래와 같은 예시들을 열거형으로 만들 수 있다. 1월~12월 달력을 볼 때 고정된 값 : JAN, FEB, MAR ... 옷사이즈 : S, M, L, XL OS 종류 : WIN10, WIN11, MACOS, LINUX ... 해상도 : HD, FHD, QHD, UHD enum Resolution { HD, FHD, UHD } enum 열거형이름 { 열거형의 값 나열 } Resolution이라는 열거형은 HD,FHD,UHD라는 세개의 값을 가진다. - 보통 열거형의 값들은 대문자로 정의한다. 열거형 데이터의 값을 가져올때에는 열거형이름.값 의 형태로 가져온다. (Resolution.HD) 아래와 같이 switch 문을.. 2023. 5. 3.
Chap_07. Final 변수 앞에 final을 붙여서 상수로 선언할 수 있다. Constants 상수 = 변하지않는 값 https://nossodia.tistory.com/186 Chap_01. 자료형과 변수 DataTypes 자료형 문자형, 숫자형, 불린(참/거짓) Variables 변수 int, double, float, long char, String boolean Comments 주석 //한줄 주석 (단축키 ctrl+/ ) /* 여러줄 주석 */ (단축키 ctrl + shift + / ) Constants 상수 변수 앞 nossodia.tistory.com 이번 시간에는 final을 이용하는 사례에 대해 알아보자. final 변수 : 변수 값 변경 불가 final 메소드 : 메소드 오버라이딩 불가 final 클래스 : .. 2023. 5. 2.
Chap_07. Reference 참조 기본 자료형 (Primitive Data Types) int, float, double, long, boolean ... 등 소문자로 시작되는 자료형이다. 기본 자료형에 아무 값도 지정하지않은경우 기본값은 0이다. 가지고 있는 메소드가 없다. 참조 자료형(Non-Primitive, Reference Data Types) String, Camera, SpeedCam .. 대문자로 시작되는 자료형이다. (클래스명 포함) 참조 자료형에 아무값도 입력하지 않은 경우엔 null 로 표현한다. 메소드를 가질 수 있다. 아래 예제를 통하여 기본자료형과 참조자료형의 차이를 이해해보자. 먼저 기본자료형인 int 예제를 살펴보자. b=a 실행 시 변수 b에 a의 값을 적용하고, 이후 a와 b의 값을 변경했을때 a와 b는 .. 2023. 5. 2.
Chap_07. Super 이전 시간에 학습한 상속 예제에서 super를 이용해 부모클래스의 메소드와 생성자를 호출하는 방법에 대하여 공부해보자. 상속 시간에 기본 카메라(Camera), 화재감지카메라(FactoryCam), 속도감지카메라(SpeedCam)을 생성하였다. 그리고 각각 Camera 클래스를 부모클래스로, FactoryCam과 SpeedCam 클래스를 자식클래스로 설정하였다. 부모클래스인 Camera에는 takePicture(), recordVideo(), showMainFeature()메소드가 있었다. public class Camera { public String name; public Camera() { this.name = "카메라"; } //카메라의 기본 기능 메소드로 정의 public void takePic.. 2023. 4. 28.
반응형