public class ExCalendar { public static void main(String[] args) { Calendar c = Calendar.getInstance(); System.out.print(c.get(Calendar.YEAR)+ "년도 "); System.out.print(c.get(Calendar.MONTH)+1 + "월 "); //월을 나타내는 함수는 0부터 시작한다. System.out.print(c.get(Calendar.DATE) + "일 "); System.out.print(c.get(Calendar.HOUR) + "시 "); System.out.print(c.get(Calendar.MINUTE) + "분 "); System.out.print(c.get(Calenda..

String Builder - 문자열 더하기를 효율적으로 하기 위한 툴 일반적으로는 "A" + "B" 를 하려고 하면 A 그대로 두고, B 그대로 두고 새로운 공간에 AB를 만든다. String Builder는? => 내부적으로 아주아주 긴~ 배열을 하나 둔다. 그런데 이 배열은 String이 아닌 char[] 이다. 그리고 append()라는 메서드를 이용하면 위와 동일한 결과를 얻을 수 있음. 모든 작업을 다 끝내고, 사용자가 "나 다 했어" 선언했을 때, 그때서야 String을 한 번 만든다. public class Main { public static void main(String[] args) { String str = "A"; // str += "B"; // str += "C"; // str ..
클래스 배열을 쓰는 이유 일반 배열을 쓰게 되면 모든 원소를 일일이 개수만큼 담아줘야하는데, 배열이 필드의 개수만큼 필요하다 예를 들면 컴퓨터를 담으려면 컴퓨터가 종류, cpu, 가격으로 이루어졌다면 배열 3개를 만들어야 하는데, 그냥 "컴퓨터가 가지고 있는 정보"라는 공통점이 있고, 그래서 컴퓨터라는 클래스 속성 하나로 퉁쳐서 만들어버리는 편리함을 얻을 수 있다. 이제부터는 배열의 필드를 따로 담는게 아니라, 클래스째로 담아버리면 얘네들을 따로 들고다닐 필요가 없어짐. 필드에서는 선언과 동시에 초기화만 가능. 코드를 쓰는 것은 함수 안에다가 해야 생성자도 함수라는 것을 간과하지 말자. 그리고, Integer, String 같이 자료형을 반환하기 위한 데이터 타입이 있는데, 클래스 반환형도 클래스 자체가..
상속 상속은 두 클래스 간의 관계를 의미한다 자식 클래스가 부모 클래스를 상속한다(extends) 자식 클래스는 부모 클래스의 필드와 메서드를 상속받는다 자식 클래스는 단 하나의 부모 클래스만을 가질 수 있다 자식 클래스 내에서 부모의 객체에 접근할 때는 super 키워드를 사용한다 자식 생성자에서는 반드시 부모 생성자를 먼저 호출해야 한다 자식 생성자에서 this()나 super() 를 호출하지 않으면 컴파일러가 super() 를 첫 줄에 삽입한다 ** 자바는 다중 상속이 안 됨(하나만 가능) -> 이 때 대안이 없을까? ==> 있다. 인터페이스 ** 인터페이스는 다중 상속에 대한 제약조건이 따로 없다. 다음을 잘 살펴보면, interface Parent{ void m2(); } interface Gr..
Static vs Non-static **클래스 필드(static field)** - 클래스 필드는 클래스의 인스턴스가 아닌 클래스 자체와 연관 public class MainClass { public static final String TOP_MANAGEMENT = "top"; public static void main(String[] args) { String topManagement = MainClass.TOP_MANAGEMENT; // 객체를 만들지 않아도 바로 받을 수 있다. // 왜냐면 얘는 인스턴스에 붙는 게 아니라 // static 키워드를 보면 알 수 있듯이 클래스에 붙는다는 걸 알 수 있지. public class MainClass { String name; public static f..

클래스 클래스는 하나의 데이터 타입을 만드는 것이고, 자바 컴파일러가 모든 타입을 만들어 줄 수는 없으니 현실의 문제를 풀 때마다 우리가 데이터 타입을 하나씩 만들어준다는 개념 클래스 하면 빼놓을 수가 없는 게 생성자 생성자 - 쉽게 말하면, 객체를 만들 때 불리는 함수. - 스프링 개념을 조금 섞자면, JPA에서 엔티티로 관리할 클래스는 기본 생성자가 반드시 있어야 한다. - 기본 생성자는 인자도 없고 메서드 본문도 없는 소위 "깡통" 같은 것. - 모든 클래스는 생성자를 반드시 하나는 가지고 있어야 하기 때문에 자바 컴파일러가 기본으로 만들어준다. - JPA에서는... JPA는 객체 세계와 데이터베이스 세계를 매핑해주는 아이기 때문에 기본 생성자를 제공해야 함. 생성자 활용 (1) 객체가 생성되자마자..