일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- it
- tool
- Design Patterns
- Gradle
- devops
- JVM
- ReactJS
- javascript
- jenkins
- MySQL
- IntelliJ
- Web Server
- AWS
- Git
- java
- ubuntu
- db
- 요리
- Oracle
- springboot
- jsp
- redis
- laravel
- Spring Boot
- linux
- Spring Batch
- php
- Spring
- elasticsearch
- 맛집
- Today
- Total
목록Java & Kotlin (250)
아무거나
[Calendar api] 날짜와 시간을 표현할 때 많이 쓰이는 클래스이다. ex) Calendar calendar = Calendar.getInstance(); // new를 생성 못하는걸로 보아 싱글턴으로 만든것 같다. int year = calendar.get(Calendar.YEAR); // 년도 int month = calendar.get(Calendar.MONTH) + 1; // 월은 현실세계와 똑같이하려면 +1로 시작해야 똑같다(프로그램은 0부터 시작하기때문에) int day = calendar.get(Calendar.DAY_OF_MONTH); // 일 int hour = calendar.get(Calendar.HOUR_OF_DAY); // 시 int minute = calendar.get(..
[String의 이해] 1. String(객체 자료형) // 이상한 점은 String은 분명 대문자로 시작하므로, 기초데이터가 아닌 객체데이터 입니다. // 하지만 뒤에 new를 사용하지 않고 기초데이터를 만들 때 처럼 초기화 하고 있다. String string = "HelloWorld"; // String의 경우만 특이하게 객체데이터 이지만, 기초데이터처럼 사용할 수 있게 하였습니다. // 이유는 아마도 많이 쓰이는 객체라서 편하게 사용하라고 그렇게 만든것 같습니다. // 그러므로 아래 두 경우 모두를 사용할 수 있다. String string = "HelloWorld"; String string = new String("HelloWorld"); 2. String의 주요 기능들(메소드) - conca..
[스트레티지 패턴] 스트레티지 패턴(Strategy Pattern) 어떤 객체를 만들 때 객체가 가지는 기능들이 다양하게 존재할 것 입니다. 이러한 기능들을 추상화 하여 언제든지 적용할 수 있게 만드는 것 입니다. 즉, 기능을 부품화 하는 것 입니다. 예를 들어 포니와 그랜저 자동차가 있습니다. 포니에 들어가는 기어 연결부분과 그랜저에 들어가는 연결부분이 동일하다고(추상화) 하면, 저급기어, 중급기어, 고급기어를 만들어 두고 상황에 따라서 적당한 기어를 적용할 수 있다. 즉 포니에는 저급기어를, 그랜저에는 고급기어를 적용하는것이다. 이렇게 기능을 부품화하여 구조를 만드는 것을 스트레티지라고 생각하면 된다. 아래 예제로 로봇을 프로그램으로 만들어 보는 것이다. [시나리오] 1. 로봇 모양은 팔, 다리, 머..
[싱글턴 패턴] 싱글턴 패턴(Singleton Pattern)이란 어떤 클래스의 인스턴스는 오직 하나임을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴 지금까지의 클래스를 잘 생각해 보면, 클래스를 하나 만들고, 만들어진 클래스로부터 객체를 여러 개 생성하여 사용하였습니다. 하지만 싱글턴 패턴을 이용하면, 클래스 하나에 객체를 유일하게 하나만 생성하여 모든 곳에서 하나의 객체에만 접근할 수 있습니다. 즉 전역의 개념으로 객체를 사용할 수 있다. ** static이나 클래스가 선언되는 위치를 데이터 영역이라하고 그 클래스들이 생성한 객체들이 위치하는 영역을 heap영역 이라한다. 예제로 소스파일을 실행시켜 확인하자. [MainClass.java] public class MainC..
[인터페이스] 1. 인터페이스란? - 객체와 객체의 소통 수단 - 작업 명세서 - 앞으로 이렇게 만들어요 - 다형성 - java에서 다형성을 가능하게 함 ex) A -> S (상속) A a = new A(); S a = new A(); // 위의 상속은 A랑 S밖에 두가지 타입밖에 안되는데 // 만약 인터페이스를 사용한다면 여러가지 타입을 지정할 수 있다. public interface InterfaceEx { public static final int CONSTANT = 10; public void inMethod(); pubiic void inMethod2(); } - 실제 개발에 적용시키기는 쉽지 않음 - 디자인 패턴이나 프레임워크를 통해 습득하는 것을 권장 - 객체를 부속품화 2. 인터페이스 문법..
[추상클래스] 강제로 부모클래스에서 자식클래스에게 메소드를 강제로 재정의(override)하게 할 수 있다. 그리고 이러한 방법으로 만들어진 클래스를 추상클래스라고 한다. ex) [부모] // 추상클래스는 반드시 추상메소드 하나이상이 포함되어 있다. public abstract class HeadQuarterStore { public HeadQuarterStore() {} public abstract void orderKimChijjige(); public abstract void orderBuDaejjige(); } [자식] public class StoreNum1 extends HeadQuarterStore { public StoreNum1() {} @Override public void orderK..
[super 키워드] super는 부모를 찾는 키워드 (this는 내 안에있는걸 찾겠다 super는 내 위쪽에 있는걸 찾겠다 둘은 반대개념(this super)) - 자식클래스에서 부모클래스를 override하면 부모클래스의 메소드는 사용할 수 없습니다. 사용하기 위해서는 super키워드를 사용하자. ex1) [ParentClass.java] public class ParentClass { public ParentClass() { } public void method1() { System.out.println("ParentClass의 method1() 입니다."); } } [ChildClass.java] public class ChildClass extends ParentClass { @Override ..
[오버라이드] 부모 클래스의 메소드를 자식 클래스에서 재정의함 - 자식 클래스가 부모 클래스를 상속하여 자식한테 없는 메소드를 호출하면 부모클래스에 가서 해당 메소드를 찾게 된다. - 만약 부모 클래스의 메소드를 자식클래스에서 동일한 이름으로 다시 재정의 하면 부모클래스의 메소드를 찾지 않고 자식 클래스의 메소드를 호출한다. - 부모클래스와 자식클래스의 타입을 따를 수 없지만, 자식클래스와 자식클래스에 나온 객체가 부모클래스의 타입을 따를 수 있다.
[static] 필요에 의해 클래스를 만들고, 사용할 때는 생성자를 통해 객체로 만들어서 사용합니다. 하지만 예를 들어 집안에 엄마 아빠와 세 쌍둥이가 있는데 아빠 지갑에 100원짜리 2개가 있다고 알고 있는 경우 세 쌍둥이가 100원씩 객체를 만들어 받았다고하면 총 -300원이다 그러면 버그이지만 해결하기 위해선 아빠지갑이 모든 아이들에게 공유 되어야한다. 그러기 위해선 static 키워드를 사용하면 된다. 즉, static = 공유 라고 생각하면 된다. 1. 선언 방법 - public static int MONEY = 200; PapaPouch.MONEY = ... ; 2. 객체를 생성하지 않고 바로 접근이 가능하다. - 클래스명.static명 3. static은 클래스 변수이다. 즉, 객체를 생성하..