본문 바로가기
반응형

분류 전체보기214

[JAVA] 다형성이란 다형성 (Polymorphism) : 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 의미합니다. 좀 더 쉽게 의미한다면 실행 결과가 여러 가지로 나오는 것입니다. 그림과 같이 3개의 클래스가 Animal 클래스를 상속받고 있다. 이때 Animal 클래스에서도 메서드 하나를 정의하고 상속받은 클래스에서 재정의를 수행하는데 이를 코드로 구현해봅시다. package polymorphism; class Animal { public void move() { System.out.println("동물이 움직입니다."); } } class Human extends Animal { public void move() { System.out.println("사람이 두 발로 걷습니다. "); } } class Tige.. 2021. 7. 3.
[JAVA] 메서드 오버라이딩 ( Method Overriding ) 1. 오버 라이딩이란 메서드 오버 라이딩은 상위 클래스에서 정의된 메서드가 하위 클래스에서 구현할 내용과 맞지 않을 경우에 하위 클래스에서 해당 메서드를 재 정의할 수 있는데 이를 메서드 오버 라이딩이라고 합니다. 메서드 오버라이딩은 상속과 뗄 수 없는 관계입니다. 상속은 extends라는 키워드를 이용하여 부모 클래스의 메서드 및 필드를 물려받는 방법이었습니다. 때문에 자식 클래스에서는 부모 클래스의 메소드를 정의하지 않아도 사용이 가능합니다. 그러나 자식 클래스에서 부모 클래스로 부터 상속받은 메서드를 다르게 정의해야 할 필요가 있을 때는 어떻게 할까요?? 예를 하나 들어보도록 하겠습니다. 이전의 게시글인 상속에서 해결하지 못했던 문제 ( 새로운 등급을 만들면서 VIP 고객에게 제공하는 할인율과 세일.. 2021. 6. 28.
[JAVA] 상속에서 클래스 생성과 형 변환 하위 클래스가 생성될 때는 항상 상위 클래스의 생성자가 먼저 호출되게 됩니다. 상속 관계에서 클래스의 생성 과정을 살펴보면 하위 클래스가 상위 클래스의 변수와 메서드를 사용할 수 있는 이유와 하위 클래스가 상위 클래스의 자료형으로 형 변환을 할 수 있는 이유를 이해할 수 있습니다. 하위 클래스가 생성되는 과정 상속을 받은 하위 클래스는 상위 클래스의 변수와 메서드를 사용 가능합니다. 변수를 사용할수있다는 것은 그 변수를 저장하고 있는 메모리가 존재한다는 뜻입니다. 그러나 이전에 적었던 VIPCustomer 클래스의 코드를 보면 해당 변수가 존재하지 않습니다. Customer 클래스를 상속받았을 뿐입니다. 여기서 우리는 상속된 하위 클래스가 생성되는 과정을 다시 생각해볼 필요가 있습니다. 테스트를 위해서 .. 2021. 6. 26.
[JAVA] 상속이란? 객체 지향 프로그래밍에서 중요한 특징 중 하나로 상속이라는 개념이 있습니다. 상속은 단어 자체로 무엇인가를 물려받는다는 의미를 지녔습니다. 예를 들어서 부모가 자식에게 물려주는 재산을 상속이라고 할 때 부모에게 재산을 받으면 상속받은 재산을 자신의 것으로 사용이 가능해집니다. 즉 객체 지향 프로그램에서도 마찬가지입니다. 즉 B 클래스가 A 클래스로 부터 상속을 받게 되면 B 클래스는 A의 클래스 멤버 변수와 메서드를 사용 가능해집니다. 객체 지향 프로그램은 유지 보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 바로 상속이기 때문입니다. 클래스의 상속 상속을 그림으로 표현할때는 다음과 같이 표현합니다. 보통은 화살표를 보고 B 클래스가 A 클래스에게 상속.. 2021. 6. 26.
[Heat Transfer] 1. 열전달과 대표적인 현상들 1. Heat Transfer ( 열전달 ) 에너지는 새롭게 생성되거나 파괴되지 않으며 그러나 하나의 형태에서 다른 형태로 변한다는 사실은 널리 알려진 사실입니다. 이러한 자연의 거동에 대해서 열역학은 열과 다른 형태의 에너지 관계를 설명하려는 시도를 하였으며 여러 개의 법칙으로 정의하였습니다. 사실 이러한 법칙들은 자연현상에서 관찰된 결과를 통해서 일반화시킨 결과이며 지금까지도 열역학 법칙을 거스르는 예제가 나오지 않아서 통용되는 법칙으로 많이 알려지고 있습니다. 그러나 열전달은 열역학과는 다르게 시스템 내부에서 이동하는 열전달 정도에 대해서 분석을 한 학문입니다. 즉 하나의 region에서 다른 region으로 에너지 전달을 온도 차이를 이용해서 설명합니다. 열전달은 곧 에너지의 전달이라고 볼 수 있.. 2021. 6. 15.
1회 충전으로 700Km 주행이 가능한 '하이니켈 배터리' 하반기 부터 LG,삼성,SK 본격 양산 시작 국내의 배터리 3사 ( LG에너지 설루션, 삼성 SDI, SK이노베이션)가 개발한 차세대 리튬이온 배터리, 이전 배터리보다 니켈의 함량이 더 높은 배터리를 하반기부터 양산을 시작합니다. 이전 배터리보다 가격은 더 저렴하면서 최대 700Km까지 주행이 가능해졌습니다. LG 에너지 솔루션에는 NCMA 배터리를 생산하며 삼성 SDI에서는 NCA 배터리를 생산합니다. SK 이노베이션에서는 NCM 배터리를 주력으로 생산하고 있는데 이들이 만드는 배터리는 각 회사별로 추가 소재가 다르기는 하지만 모두 양극재에 들어가는 코발트는 줄이고 니켈을 늘린 것이 특징입니다. LG의 경우 NCMA 배터리의 니켈 함량은 80~90%를 보장하며 코발트는 5% 이하입니다. SK 이노베이션은 NCM 배터리 역시 니켈과 코발트 비중이 .. 2021. 6. 10.
[JAVA] ArrayList 란 ArrayList 도입 프로그래밍을 하면서 배열을 사용하기 위해서 항상 배열의 길이를 정하고 만들게 됩니다. 기본적으로 100명의 학생 크기를 위한 배열을 사용하는 프로그램을 만들었는데 순간 학생수가 100명이 넘어버리는 경우가 발생하기도 합니다. 하지만 이러한 경우 기존에 사용하던 배열의 길이를 변경할 수 없기에 코드를 수정해야 합니다. 또 다른 경우는 도중에 전학을 가게 되는 경우에 배열의 중간 위치에 담긴 요소가 사라지는 경우가 발생합니다. 이러한 경우에 대비하여 자바는 객체 배열을 좀 더 쉽게 사용이 가능하도록 객체 배열 클래스 ArrayList를 제공합니다. ArrayList 클래스는 객체 배열을 관리가 가능하도록 멤버 변수와 메서를 제공하는데 이러한 방법들을 알아두면 배열 관리와 생성 및 삭제.. 2021. 6. 10.
[JAVA] 배열 JAVA에서도 배열이 존재하는데 데이터를 다루고 구조화시키기 위해서 매우 필수적인 개념입니다. 배열은 일반적으로 기본 변수를 각각 선언하는 게 아닌 여러 자료를 한 번에 처리하고 선언이 가능한 기능입니다. 선언 방법 1. 자료형[] 배열 이름 = new 자료형 [개수]; 2. 자료형 배열 이름[] = new 자료형 []; ex) int [] studentIDs = new int [10]; 초기화 방법 1. int [ ] studentIDs = new int [ ]{1,2,3}; 2. int[ ] studentIDs = {101,103,104}; 3. int[ ] studentIDs; studentIDs = new int [ ]{1,2,3}; * 여기서 계속 [ ] 이거를 사용하는 것은 인덱스 연산자를 의.. 2021. 6. 1.
[JAVA] static 응용 - 싱글톤 패턴 JAVA 언어에서 싱글톤 패턴이라는 게 나옵니다. 프로그램을 구현할때 여러 개의 인스턴스가 필요한 경우가 있고 또는 단 하나의 인스턴스만 필요한 경우도 있습니다. 이때 객체 지향 프로그램에서 인스턴스를 단 하나만 생성하는 디자인 패턴을 싱글톤 패턴이라고 부릅니다. 우리가 살펴볼 싱글톤 패턴은 static을 응용하여 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하는 방식으로 실무나 여러 프레임워크에서 많이 사용하는 패턴이므로 잘 익혀두면 좋습니다. 예를 들어서 어떤 회사에서 직원들을 객체 지향 프로그램으로 구현할때 직원은 여러 명이겠지만 회사는 하나로 존재합니다. 이런 경우에 직원 인스턴스는 여러 개를 생성하는 것이 당연하지만 회사 객체는 단 하나만 생성해야 하기 때문에 싱글톤 패턴으로 회사를 만들 수.. 2021. 5. 28.
반응형