전체 글
-
Java - 추상 클래스(추상 클래스)1-1개발언어/JAVA 2023. 11. 3. 14:54
추상 클래스 //{}안의 내용이 함수의 몸체 int add(int x, int y){ return x + y; } 추상 클래스는 항상 추상 메서드를 포함한다. 추사 메서드는 구현 코드가 없다. 함수의 구현 코드가 없다는 것은 함수 몸체(boby)가 없다는 뜻이다. 추상 메서드 abstract int add(int x, int y); 증괄호{}로 감싼 부분을 함수의 구현부(implementation)라고 한다. 이 부분이 없는 함수는 추상 함수(abstract function)이고 자바에서는 추상 메서드(abstract method)라고 한다. 추상 메서드는 위와 같이 선언만 하며 abstract 예약어를 사용한다. 그리고 " { } "대신 " ; " 를 사용한다. int add(int x, int y){..
-
Java - 상속 다형성(다운 캐스팅과 instanceof)7카테고리 없음 2023. 11. 3. 13:13
다운 캐스팅과 instanceof 하위 클래스로 형 변환, 다운 캐스팅 위와 같은 계층 구조에서 상위 클래스를 자료형으로 선언하는 Animal ani = new Human(); 코드를 사용할 수 있다. 이 때 생성된 인스턴스 Human은 Animal형이다. 이렇게 Animal형으로 형 변환이 이루어진 경우에는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 다시 말해 Human 클래스에 더 많은 메서드가 구현되어 있고 더 다양한 멤버 변수가 있다고 하더라도 자료형이 Animal형인 상태에서는 사용할 수가 없다. 따라서 필요에 따라 다시 원래 인스턴스의 자료형(여기서는 Human형)으로 되돌아가야 하는 경우가 있다. 이렇게 상위 클래스로 형 변환되어 있던 하위 클래스를 다시 원래 자료..
-
Java - 상속 다형성(다형성 활용하기:IS-A 관계, HAS-A 관계)6-2개발언어/JAVA 2023. 11. 3. 12:00
다형성 활용하기 상속은 언제 사용할까? VIP 고객 등급을 추가하는 문제를 다시 생각해 보자. 이미 Customer 클래스가 구현되어 있는데 추가 요구 사항이 생긴 것이다. 사실 가장 간당하게 생각해보면, 이미 Customer 클래스가 존재 하므로 여기에 추가 내용을 함께 구현할 수도 있다. Customer 클새스에 VIP 고객의 내용도 함께 구현하는 것이다. 그런데 추가 기능을 이렇게 구현하면 코드가 굉장히 복잡해진다. 그 이유는 일반 등급 고객이 사용하지 않는 속성(상담원ID,할인율 등)뿐만 아니라 VIP 고객만을 위한 서비스 내용까지 추가 해야 하기 때문이다. if(customerGrade == "VIP"){ //할인해 주고, 적립도 많이 해주고 } else if(customerGrade == "G..
-
Java - 상속 다형성(다형성 활용하기)6-1개발언어/JAVA 2023. 11. 3. 11:17
다형성 활용하기 일반 고객과 VIP 고객의 중간 등급 만들기 예제 시나리오 고객이 늘어 VIP 고객만큼 물건을 많이 구매하지는 않지만, 그래도 단골인 고객에게 해택을 주고 싶다. 그래서 GOLD고객 등급을 하나 추가한다. GOLD 고객의 혜택은 다음과 같다. - 제품을 살 때는 항상 10%할인을 준다. - 보너스 포인트를 2% 적립해 준다. - 담당 전문 상담원은 없다. 새로운 고객 등급 추가하기 GoldCustomer.java package polymorphism; public class GoldCustomer extends Customer{ double saleRatio; public GoldCustomer(int customerID, String customerName){ super(customer..
-
운영체제 - OS, Operating SystemCS지식/운영체제 2023. 11. 2. 20:02
운영체제란 하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행한다. CPU, 메모리 같은 컴퓨터 자원은 제한적이라서 이러한 자원을 관리하는 일은 매우 중요하다. 또한 사용자와 컴퓨터 간 인터페이스를 제공해 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다. 운영체제 목적 OS는 앞서 말한 것과 같이 한정된 컴퓨터 자원을 관리하는 시스템이다. 이러한 역할에 기반해 OS는 4가지 목적있다. 처리 능력(throughput) 향상 : OS는 자원 관리를 총해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킨다. 반환 시간(turnaround time)단축 : OS..
-
Java - 상속과 다형성(다형성)5개발언어/JAVA 2023. 11. 1. 16:31
다형성 다형성(polymorphism)이란 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 말한다. 쉽게 말해 같은 코드에서 여러 실행결과가 나오는 것이다. package polymorphism; class Mammalia{ public void move(){ System.out.println("동물이 움직입니다."); } } class Human extends Animal{ public void move(){ System.out.println("사람이 두 발로 걷습니다."); } } class Tiger extends Animal{ public void move(){ System.out.println("호랑이가 네 발로 뜁니다."); } } class Eagle extends Animal{ pub..
-
Java - 상속과 다형성(오버라이딩:Overriding, 가상메서드)4카테고리 없음 2023. 11. 1. 14:18
메서드 오버라이딩 상위 클래스 메서드 재정의하기 package inheritance; public class Customer{ protected int customerID; protected String customerName; protected String customerGrade; int bonusPoint; double bonusRatio; public Customer(){ customerGrade = "SILVER" //기본등급 bonusRatio = 0.01 //보너스 포인트 기본 적립 비율 } //보너스 포인트 적립, 지불 가격 계산 메서드 piblic int calcPrice(int price){ // 보너스 포인트 계산 bonusPoin += price * bonusRatio; return..
-
Java - 상속과 다형성(묵시적 형변)3카테고리 없음 2023. 10. 17. 16:19
상위 클래스로 묵시적 클래스 형 변환 상속을 공부하면서 이해해야 하는 중요한 관계가 클래스 간의 형 변환이다. 일단 앞서 상속과 다형성1,2에서 살펴본 Customer와 VIPCustomer의 관계를 생각해 보자. 개념적인 면에서 보면 상위 클래스인 Customer가 VIPCustomer보다 포괄할 수 있는 클래스가 더 많은 일반적인 개념이고, 기능 면에서 보면 VIPCustomer가 기능은 더 많다. 왜냐하면 상속을 받은 하위클래스는 상위 클래스의 기능을 모두다 사용할 수 있을 뿐더러 거기에 추가로 더 많은 기능을 구현하기 때문이다. 더불어 Customer와 VIPCustomer의 관계를 살펴보면 VIPCustomer는 VIPCustomer형(type)이기도 하면서 Customer형이기도 하다. 즉 V..