메서드 6

자바 27강. 제네릭

제네릭(Generic) 프로그래밍 : 데이터 타입을 일반화하는 것 구체적인 타입을 적지 않고 변수 형태로 적어놓는 것을 말한다. 사과박스 설계도를 만들고 내용은 똑같은, 사과가 아닌 물을 담는 박스 설계도를 또 만드는 것은 요청할 때마다 메서드를 만드는 것과 같아서 메서드가 100개, 1000개 필요이상으로 많아질 것이다. 그렇다면 같은 메서드로 타입이 다른 것들을 리턴할 수는 없을까? public 사과 응답( ) { // return값이 사과타입 if(사과요청) { return 사과; } else if (딸기요청) { return 딸기; } } 이 코드가 가능할까? 통신은 정확한 타입을 리턴해야한다. 데이터를 요청하면 메서드가 실행되는데 메서드의 return 타입을 if문을 사용해 바꿀 수는 없다. 응..

JAVA 2022.01.20

자바 24강. String

은행의 A 컴퓨터와 홍길동의 B 컴퓨터가 통신을 할 것이다. 통신을 할 때 너무 길게 보내면 데이터가 무거워진다. 자연어 상태로 보내게 되면 컴퓨터는 이해할 수 없다. 컴퓨터가 이해하기 쉬운 데이터로 분석하는 파싱을 해주어야 한다. 경량 데이터를 보내려면 프로토콜을 만들어 경량화를 해두어야 한다. 자연어로 보내면 파싱이 안되기 때문이다. 자연어가 아닌 프로토콜을 지킨 상태로 보내야 파싱 할 수 있다. 누가 봐도 이해하기 쉽게 보내야 한다. 송신자 : 계좌번호 : 수신자 : 계좌번호 : 금액이라는 프로토콜을 정했고 홍길동은 계좌이체를 하기 위해 프로토콜에 맞추어 홍길동 : 10333377 : 장보고 : 1123333557 : 5000이라고 요청을 했다. Byte Stream으로 들어오는 통신은 모두 문자열..

JAVA 2022.01.20

자바 17강. 오버라이딩 ★

부모가 들고 있는 메서드를 자식이 똑같이 들고 있거나, 자식이 들고 있는 메서드를 부모가 똑같이 들고 있는, 똑같은 메서드를 자식도 들고 있고 부모도 들고 있으면 부모의 메서드가 오버라이드 된다. 무효화된다는 말이다. 부모가 가지고 있기 때문에 자식에게 양보하는 것이다. 즉, 메모리를 위에서 밑으로 타고 내려간 것이다. 변수는 자식이 똑같은 변수를 들고 있어도 양보하지 않고, 부모가 가지고 있는 변수를 실행한다. 메서드는 동일한 메서드를 부모와 자식이 가지고 있다는 조건을 지킨다면 부모의 메서드를 오버라이드(무효화)시킨다. 부모의 메서드를 통로로 이용하는 것이다. 통로로 이용하기 때문에 부모 클래스에는 아무런 내용이 필요 없다. 이런 클래스를 abstract 추상 클래스라고 한다. 다형성을 위해 만들어진..

JAVA 2022.01.17

자바 15강. 오버로딩

오버 로딩 = over-loading = 과적재 사자 unit1, 호랑이 unit2 unit2 = u1 대입 안됨 사자 타입과 호랑이 타입이 맞지 않기 때문 타입 확인 중요! package ex00; // 오버로딩 = over-loading = 과적재 class 사자 { String name = "사자"; int hp = 100; int attack = 10; } class 호랑이 { String name = "호랑이"; int hp = 100; int attack = 15; } class 곰 { String name = "곰"; int hp = 100; int attack = 50; } public class MethEx04 { // 사자 -> 호랑이 공격 static void attackLionToT..

JAVA 2022.01.13

자바 13강. 메서드

클래스의 행위에 대해 알아보자. 행위 = 메서드 행위는 " 메서드 이름 + ( ) + { } " 구조로 만들어진다. void drink ( ) { } 이 구조를 가진 것들은 메서드이다. main도 같은 구조를 가지고 있으니 메서드이다. 행위 안에 행위를 추가할 수 없다. 메서드 = 블랙박스(캡슐화) 혹은 매직박스라고도 함 호출만 해! 캡슐화 : 호출하면 뭐가 나올지만 알면되고 구조와 원리는 이해할 필요 없음 (ex. 엑셀 밟으면 자동차가 앞으로 나감 메서드를 호출하면 차가 앞으로 나가는 행위 엑셀 : 메서드를 호출하는 하나의 인터페이스) 세상의 모든 것들은 호출해서 아웃풋이 나온다. 그리고 대부분 모든 사람들은 호출해서 왜 어떻게 아웃풋이 나오는지 모른다. 캡슐화된 메서드를 호출만 하기 때문이다. 개발자..

JAVA 2022.01.12

자바 12강. 클래스

class를 만들 때 규칙이 있다. 1. 클래스는 상태와 행위를 가진다. 상태 : 변수 (ex. 목이 마른 정도 = 30) 행위 : 메서드 (ex. 물 마시기) 2. 상태는 직접 변경할 수 없다. 행위를 통해서만 변경이 가능하다. (ex. 목이 마른 정도 = 50 으로 직접 변경 불가능) 3. 자바는 모든 코드가 클래스 내부에 들어와야한다.(언어마다 특징이 다름) 자바에서 class가 1급객체이기 때문이다. 클래스 생성은 자체가 클래스이기 때문에 밖에 쓸 수 있다. 상태만 있고 행위는 없는 클래스가 있긴 하다 이것은 상태가 고정되어 있는 클래스이다. 상태가 있고 행위는 없을 수도 있고 상태는 없고 행위만 있을 수도 있고 둘 다 없을 수도 있다. 클래스의 구조는 이렇다. class Car { 상태 행위( ..

JAVA 2022.01.12