본문 바로가기

분류 전체보기189

[JAVA] 매개변수의 다형성 1. 다형적 매개변수 >> 조상 타입의 참조변수로 자손 객체를 다루는것 >> 참조변수의 형변환 -> 리모컨 바꾸기 -> 사용할수 있는 멤버의 갯수 조절 >> instanceof 연산자 -> 형변환 가능 여부 체크 -- 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨 줄수 있다. 상품 클래스, 상품 클래스를 상속하는 Tv, Computer, Audio 소비자 클래스가 있을때 void buy(Tv t) --> 라는 매서드가 있다면 buy의 매개 변수로는 Tv 타입만 들어올수 있으므로 Computer나 Audio를 사려면 void buy(Computer c), void buy(Audio a) 매서드가 필요하다 이럴경우 매서드가 너무 많아지고 다루기가 힘든데 이경우는 매개변수.. 2022. 5. 30.
[JAVA] 다형성 / 참조변수간의 형변환 다형성이란? >> 조상 타입 참조변수로 자소나입 객체를 다루는것 객체를 생성할때 참조변수와 생성자의 타입을 동일하게 생성했었는데 Tv t = new Tv(); SmartTv s = new SmartTv(); 다형성이란 객체간 상속 관계가 형성되어 있을때 조상타입의 참조변수 t로 자손 타입의 객체 SmartTv()를 다루는 것이다. Tv t = new SmartTv(); (불일치 해도 OK) > SmartTv s = new SmartTv(); 로 생성할 경우에는 Tv의 멤버 4개와 SmartTv 멤버 2개 총 6개의 멤버를 모두 사용할 수 있다. Tv t = new SmartTv(); 로 생성할 경우는 Tv에는 멤버가 4개 밖에 없기 때문에 SmartTv가 6개를 가지고 있더래도 Tv에는 SmartTv에만.. 2022. 5. 30.
[JAVA] 매개변수(Parameter) , 인수(argument) 코딩을 하면서 매개변수란 말과 인수란 말을 혼용하여 사용하는데 어떻게 다른지 한번 확인해 보자. 현재 옵션을 바꿀수 있는 Option()이라는 매서드를 보면 Option() 안에 String color, String payMethod 를 넣을수 있는데 매개변수란 함수가 정의된 파라미터 String color, String payMethod 자체를 의미한다. 즉 Option의 매개변수는 String 변수 2개가 들어간다는 것이고 그렇다면 인수란? Option이란 매서드를 사용할때 직접 넣는 데이터를 의미한다. 즉 현재 Option이라는 메서드를 사용하여 "Gray", "CheckCard" 를 넣었는데 이 2개 데이터값이 인수이다. 정리하자면 매개변수란 함수를 정의할때 ()안에 넣어야할 데이터의 자료형을 의.. 2022. 5. 30.
[JAVA] 클래스 클래스란 ? 데이터 + 함수를 모아 놓은것. 1. 변수 ? : 하나의 데이터를 저장 할 수 있는 공간 2. 배열 ? : 같은 종류의 데이터를 하나로 저장 할 수 있는 공간 3. 구조체 ? : 서로 관련된 여러 데이터(종류 상관 없이)를 하나로 저장 할 수 있는 공간 4. 클래스 ? : 데이터와 함수의 결합(== 구조체 + 함수) -> 서로 관련있는 데이터와 함수를 묶어 놓은 것이 클래스 클래스 안에서 선언 위치에 따른 변수의 종류 1. 클래스 영역 : iv, cv(static 변수) 2. 메서드 영역 : lv(local Vailable) 변수의 종류 선언위치 생성시기 클래스 변수(cv) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(iv) 인스턴스가 생성되었을 때 지역변수(lv) 클래스 영역 이.. 2022. 5. 30.
[JAVA] 변수 기본형 - boolean(1), char(2), byte(1), short(2), int(4), long(8), float(4), double(8) - 실제 값을 저장 참조형 - 기본형을 제외한 나머지(String, System 등 ) - 메모리 주소를 저장(4byte wor 8 byte) - Date today; // Date의 참조변수 today 선언 - today = new Date(); // today 에 Date객체의 주소를 저장 2022. 5. 30.
[JAVA] 객체 생성 클래스(설계도) 객체(제품) TV 설계도 TV 핸드폰 설계도 핸드폰 클래스 : 설계도라고 생각 하면된다. TV를 만들기 위해서는 설계도가 필요한데 설계도 안에는 TV에 필요한 기능, 속성 등 여러가지 속성들이 들어 있다고 생각 하면된다. 즉.. 아래보면 Tv 라는 클래스가 정의되어 있고, 가로,세로, 볼륨, 체널, 여러 기능들이 정의되어 있다. 하지만 클래스는 말그대로 설계도 일 뿐이고.. Tv를 사용하려면 Tv라는 객체를 생성해야 한다. 객체를 만들때는 new 라는 명령어를 통해서 생성한다. 객체를 생성하기 위해서는 new 라는 키워드를 사용해서 생성한다. 방법은 클래스(타입) 참조변수( 왼쪽에 있는 클래스의 참조변수) = new 생성자(): new : 인스턴스를 생성한다. 메모리에 공간을 할당해준다... 2022. 5. 29.
[JAVA] 생성자 맨날 까먹음,,,,...!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 부모를 상속한 자식의 생성자에는 super(); 가 첫줄에 생략되어 있지만 항상 실행된다. // 결과를 보면 //1번 부모로 부모를 생성할떄는 Parent p = new Parent(); 가장먼저 부모의 생성자가 실행되고, 모든 메서드들이 부모에서 정의한대로 실행된다. //goOut() 의경우 자식에서만 정의한 메서드이므로 부모는 사용하지 못함 //2번 Children c = new Children(); // 부모를 상속한 자식 클래스를 // 자식으로 생성 // 부모의 생성자가 실행되고 -> 자식의 생성자가 생성됨. // 자식에 존재하지 않은 clean()의 경우는 부모에서 정의된 clean() 함수가 사용되었음 // 인스턴스 변수와 메서드들은 -> 자식에서 정의한 대로 실행되었음 //3번 Parent .. 2022. 5. 28.
[Algorithm/Lamda] 함수형 인터페이스 함수형 인터페이스 - 단 하나의 추상 메서드만 선언된 인터페이스 인터페이스로 구현 객체를 사용하려면 인터페이스 변수를 선언하고, 구현 객체를 대입해야 한다. 즉 인터페이스 변수가 구현 객체의 주소를 참조한다. 일회성의 구현 객체를 생성하기 위해 소스파일을 만들고 클래스를 선언 하는것은 효율적이지 못하다. 그래서 익명 구현 객체를 생성하여 인터페이스를 구현한 익명의 구현 객체를 생성한다. 방법으론 인터페이스 변수 = new 인터페이스(){ 인터페이스에서 생성한 추상메서드 }; 이렇게 생성된 익명 객체는 컴파일러에 의해 자동으로 클래스가 생성되며 이름에 $가 포함되어 있다. ==> 동일한 것을 다시 해봤다 추가 적인 예를 설명으로 하자면 =======================================.. 2022. 5. 28.
[Algorithm/Lamda] Lamda식에 대해 공부해보자 ============================================================================================ 2022. 5. 28.
[Algorithm] 주어진 배열에서 3개 값을 더해 소수인 경우를 구해라 프로그래머스[초급] 배열의 길이가 3이상인 배열이 1개 주어지고, 배열의 요소는 1이상 1000이하의 숫자로 중복된 숫자는 없다. 이 배열에서 3개의 요소를 더해서 (중복 X) 소수인 경우수를 구해서 리턴해라 일단 소수란 : 1과 자기 자신으로 밖에 나눠지지 않는 수를 소수라고 한다. 즉 i값은 처음 부터 (0) ~ 배열.length-2 까지만 가능하다 왜냐하면 i다음에는 j 값, k 값이 들어가야 하므로 j값은 i값보다 1큰수 부터 ~ 배열.length-1 까지만 가능하다 왜냐하면 j값 다음에는 k 값이 필요하니까 k 값은 i,j 값 다음부터 가능하므로 j(i+1)+1 ~ 배열의 끝까지 가능하다. 그래서 총 이 3개의 숫자를 더해서 소수인지 판단하고 소수일경우 result 를 1씩 더해서 소수의 갯수를.. 2022. 5. 28.