컬렉션 프레임웍(Collections Framework) def: 데이터 그룹(群)을 저장하는 클래스들을 표준화한 것. 크게 3타입이 존재한다. List: 순서가 있는 데이터 집합 Set: 순서를 유지하지 않는 데이터 집합 Map: key와 value로 이루어진 데이터 집합 List와 Set은 공통점이 많아 추가적으로 Collection 인터페이스로 정의된다. (List와 Set이 Collection을 상속) ArrayList 기존의 배열과 다른 점 배열의 사이즈는 초기화 시 고정되기 때문에 변경이 불가하다. 하지만 ArrayList는 동적이어서 사이즈를 선언하지 않고 원소를 유동적으로 add, remove할 수 있다. 배열은 다차원이 가능하나 ArrayList는 불가하다. import java.util..
Today I Learned JAVA 정리 다형성 인터페이스 인스턴스와 참조변수의 연결 Today was 정리밖에 안한 것 같은데 왜이리 시간이 빨리 갔는지 모르겠는 하루 내일 예외처리를 정리해야겠다 그리고 내일부터 알고리즘을 두 문제씩 풀어야지! 자바는 배울수록 어려운 느낌. 특히 자바스크립트로 입문을 해서 그런지 내가 자바로 코딩을 하면 정말 여기저기서 빨간 줄이 뜬다. 그냥 뭔가 되겠거니 하고 코딩하면 안되겠구나 싶고 굉장히 엄격하게 생각해야 되는 느낌이다. 그렇지만 리액트랑 비슷한 부분도 많다. 사실 자바스크립트에서 리액트 배울 때는 갑자기 클래스나 슈퍼 같은게 나와서 굉장히 이상했는데, 자바를 배우니 비슷한 부분이 많았다. 컴포넌트끼리 관계를 맺어 상호작용하도록 하는 점도 유사하다. 다음주에는 ..
인터페이스(Interface) 인터페이스란 일종의 추상클래스인데, 추상클래스보다 추상화 정도가 높다. 추상클래스가 미완성 설계도라면 인터페이스는 기본 설계도이며, 다른 클래스 작성에 도움을 준다. 인터페이스에는 추상메서드와 상수만 올 수 있다. (일반 메서드와 상수가 아닌 변수는 올 수 없다) - 모든 멤버변수는 public static final 이어야하며 생략 가능 - 모든 메서드는 public abstract 이어야하며 생략 가능 예시 class FighterTest { public static void main(String[] args) { Fighter f = new Fighter(); } } class Fighter extends Unit implements Fightable { public ..
여러 타입의 객체를 배열로 다루기 예시 package com.Hazel; public class Main { public static void main(String[] args) { Buyer b = new Buyer(); b.buy(new TV()); b.buy(new Computer()); b.buy(new Audio()); b.summary(); } } class Product { int price; int bonuspoint; Product(int price) { this.price = price; bonuspoint = (int)(price / 10.0); } Product() {} } class TV extends Product { TV() { super(100); } public String..
Instanceof 참조변수의 인스턴스타입을 확인하며 boolean값을 반환. void work (Car c) { if(c instanceof FireEngine) { FireEngine fe = (FireEngine)c; fe.water(); ... } else if(c instanceof Ambulance) { Ambulance a = (Ambulance)c; a.siren(); ... } } Car 클래스의 참조변수 c가 어떤 인스턴스타입인지 확인하여 작업을 수행한다. 조상타입의 참조변수로는 실제 인스턴스 멤버들을 모두 사용할 수 없기 때문에 실제 인스턴스와 같은 타입의 참조변수로 형변환해야만 인스턴스의 모든 멤버를 사용할 수 있다. instanceof의 결과가 true면 그 타입으로 형변환해도 문..
다형성(polymorphism) def: 조상클래스 타입의 참조변수로, 자손클래스의 인스턴스를 참조할 수 있도록 한 것. // 예시 class TV { /* 내용 생략 */ } class captionTV extends TV { /* 내용 생략 */ } TV t = new CaptionTV(); // 조상 타입의 참조변수로 자손 인스턴스를 참조 captionTV ct = new TV(); // ERR!! 이 경우, t는 CaptionTV의 인스턴스이지만 TV타입의 참조변수이기 때문에 상속된 TV클래스에만 접근할 수 있다. 즉 TV클래스에서 정의되지 않고 captionTV에서만 정의된 인스턴스 멤버에는 접근할 수 없다. 그렇다면, captionTV타입의 참조변수로 정의하면 모든 멤버를 사용할 수 있을텐데 ..
Today I Learned JAVA 제어자 인터페이스 예외처리 JS Project detect 클릭 시 유효한 url이 아니면 alert하는 기능 추가 로그인 시 유효한 정보가 아니면 alert하는 기능 추가 favicon 및 타이틀 변경 Today was 자바를 복습을 열심히 못했더니 oop부분에 와서는 제대로 소화를 못하고 있는게 느껴진다. 자바 복습을 다시 열심히 하고 좀 더 자유자재로 쓸 수 있게 되면 알고리즘도 자바로 연습해야지! 어쨌든 부족하나마 deploy를 했고, (아직 고치고 싶은 부분도 많지만...) 지원서도 냈으니 내일은 코드 고치는 것보다는 알고리즘 연습이랑 자바 복습! 고치고 싶은 코드는 이슈로 정리해놓고 조금씩 고쳐야지(로딩 표시, popup 개선, 사이트 기능에 대한 안내 추..
제어자(modifier) 제어자는 클래스, 변수, 메서드 선언부에서 사용되며 부가적인 의미를 부여한다. 제어자의 종류 접근 제어자: public, protected, default, private(접근제어자는 한 번에 한 개만 가능) 그 외: static, final, abstract, native, syncronized 등 static static이 붙으면 클래스의, 공통적인 이라는 의미이다. 인스턴스 생성없이 호출할 수 있으며, static(클래식) 메서드 내에서는 인스턴스 멤버들을 직접 사용할 수 없다. final final이 붙으면 변경될 수 없다는 의미이다. 클래스에 붙으면 다른 클래스의 조상이 될 수 없다. 메서드에 붙으면 오버라이딩될 수 없다. 변수 앞에 붙으면 값을 변경할 수 없다. 일반적..
Today I Learned JAVA 오버라이딩 super, super() interface JS project 드디어 deploy를 했다..!!!!!! smart-brains-api.herokuapp.com enter key signin 추가 Today was 디플로이 하는 거 정말 쉽지 않았다. 데이터베이스를 헤로쿠에 새로 만들어서 연결하는 작업이 제일 애먹었는데, 일단 데이터베이스 url을 연결하는 것도 애먹었지만 문제는 연결 뒤에도 register가 안된다는 것이었다. log찍어도 딱히 에러나는 것은 없는데 register가 안된다고 한다. 어디가 잘못됐는지 진짜 못찾겠다 싶었는데, 나중에 찾긴 찼았다. psql에서 query history로 테이블 생성 명령을 복사해서 터미널에 붙여넣어 테이블을..
오버라이딩(overriding) def: 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 오버로딩과 오버라이딩은 명칭이 비슷하지만, 오버로딩은 기존에 없는 새로운 메서드를 만드는 것(new)이고 오버라이딩은 기존의 조상클래스의 메서드를 수정(modify)하는 것이다. Super def: 자손클래스에서 조상클래스로부터 상속받은 멤버를 참조하는 데 사용되는 참조변수. this처럼, 상속받은 멤버와 자신의 클래스에 정의된 멤버 이름이 같을 때에는 super로 구별할 수 있다. 예시1 : 조상클래스 변수를 super로 호출 class SuperTest { public static void main(String[] args) { Child c = new Child(); c.meth..
Today I Learned JS Project Code Review Security Review JAVA 변수의 종류 참조형 매개변수 및 참조형 반환 인스턴스와 클래스 간 참조, 호출 관계 클래스 간 관계(상속, 포함) Today was 갑자기 몰아서 하려니까 힘들었다...ㅎ deploy해야되는데 코드리뷰 하느라 끝났다.. 그런데 개선하고 싶은 부분이 아직 몇가지 있는데 시간이 별로 없어서 목요일까지 할 수 있을지 모르겠다. 자바는 오버라이딩이랑 추상화까지 진도인데 아직 못봤다. 내일은 진짜 무조건 deploy까지 할거다!!!
클래스 간의 관계 상속(Inheritance) class Parent { } class Child extends Parent { } 포함(Composite) class Circle { int x; // 원점 x좌표 int y; // 원점 y좌표 int r; } class Point { int x; int y; } // Point 클래스를 재사용하여 클래스 내에 포함시키는 경우 class Circle { Point c = new Point(); // 원점 int r; } 클래스 간 관계 중 어느 것이 적절할 지 판단하는 기준 상속관계 => ~은 ~이다. (eg. 스포츠카는 자동차이다.) 포함관계 => ~은 ~을 가지고 있다. (eg. 원은 원점을 가지고 있다.) 상속 및 포함 예시 class DrawSha..
메서드의 호출 다른 타입으로 호출했을 경우 class MyMathTest { public static void main(String args[]) { MyMath mm = new MyMath(); double result = mm.divide(5L, 3L); System.our.println(result); // prints 1.6666666666666667 } } class MyMath { double divide(double a, double b) P return a / b; } divide 메서드 선언 시에 패러미터는 double형으로 선언했는데, 실제 아규먼트는 long형으로 대입한 경우, double a = 5L;과 같아서, long형 값을 double형 변수에 저장하는 것과 같다. 이 경우 d..
기본형, 참조형 parameter 참조형 예시1 class Data { int x; } class ReferenceParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println(d.x); // prints 10 change(d); // pass d System.out.println(d.x); // After change, prints 1000 } static void change(Data d) { d.x = 1000; } } change메서드의 매개변수가 참조형이라서 값이 아니라 값이 d가 저장된 주소를 change메서드에게 넘겨주기 때문에, 메서드를 호출한 뒤 d.x값이 변경된다. 참조..
- Total
- Today
- Yesterday
- oracle
- 개발 공부
- this
- 포인터 변수
- youtube data api
- Conflict
- Prefix Sums
- jQuery
- react
- linkedlist
- useEffect
- Redux
- Session
- SQL
- getter
- 깃
- 인스턴스
- c언어
- til
- Java
- rxjs
- GIT
- package.json
- 제네릭스
- CSS
- Data Structure
- 알고리즘
- JavaScript
- 자바
- 리덕스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |