[JAVA] Object 클래스
2022. 10. 4. 01:19
JAVA/기본 문법
Object 클래스란? Object 클래스는 모든 자바 클래스들의 최고 조상 클래스 따라서 모든 자바 클래스들은 Object 클래스의 모든 메소드들을 바로 사용할 수 있음 Object 클래스의 Method 사용 예제 1 아래 코드에서는 Object 클래스의 toString, getClass, eqauls 메소드를 사용해봄 getClass() : 해당 Object가 어떤 클래스인지 출력 toString() : 해당 Object를 String 타입으로 변환, Student 클래스를 String 타입으로 출력했을 때는 주소값이 출력됨 equals() : 해당 Object가 같은지 출력, student와 student2는 name, age가 같긴 하지만 주소값은 다르기 때문에 false 출력 public cla..
[JAVA] Generic, Wrapper Class
2022. 10. 4. 00:57
JAVA/기본 문법
Generic 이란? List, Map, Set 등을 선언할 때, List, List 와 같은 코드를 사용함 위와 같이 안에 Data Type을 지정해 줌 이 때, 안에 특정 Data Type을 미리 지정하지 않고 개발자의 필요에 의해 지정할 수 있도록 하는것이 Generic 한마디로 Generic은 Data Type을 일반화(generalize) 한다는 의미 우리가 같은 List를 List, List과 같이 Data Type만 달리해서 사용할 수 있는것도 List에서 Generic 문법이 사용되기 때문 JDK 1.5 버전 이후로 사용 가능 Wrapper Class 란? List같은 코드를 보면 왜 int가 아닌 Integer을 사용하는데, 이 때 Integer와 같은 것들을 Wrapper Class라 ..
[JAVA] Calendar 클래스
2022. 10. 3. 23:50
JAVA/기본 문법
Calendar 클래스란? 전에 https://chb2005.tistory.com/54#no4 여기서 LocalDateTime 클래스로 현지 시간을 나타내는 법을 정리했음 Calendar 클래스도 이와 비슷하게 JAVA에서 제공하는 날짜 관련 클래스 Calendar 클래스 사용 예제 import java.util.Calendar; public class CalendarTest { public static void main(String[] args) { Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); int month = now.get(Calendar.MONTH); int date = now.get(Calendar.DATE..
[JAVA] Big Integer
2022. 10. 3. 22:21
JAVA/기본 문법
Big Integer 란? JAVA에서 int의 범위는 약 -21억 ~ 21억, long의 범위는 약 -9 * 10^18 ~ 9 * 10^18 long까지 사용하면 매우 큰 범위이지만, 이를 넘어가는 숫자를 사용해야 될 수도 있음 이 때, Big Integer을 사용하면 됨 ( 문자열을 사용하기 때문에 이 범위를 넘어가는 일은 거의 없을듯 함 ) Big Integer 사용 예제 public static void main(String[] args) { BigInteger x = new BigInteger("1111111111111111111111111111111"); BigInteger y = new BigInteger("2222222222222222222222222"); System.out.println..
[JAVA] String Builder, String Buffer
2022. 10. 3. 22:08
JAVA/기본 문법
String Builder에 관해서는 전에 https://chb2005.tistory.com/73 여기서 조금 다룬 적이 있음 출력할 때 System.out으로 직접 출력하는 것보다 StringBuilder을 사용해 출력하는 것이 더 빨랐었음 왜 더 빠른지 이 글을 보면 알 수 있을 것이라 생각함 String Builder, String Buffer 란? String의 경우 빈번하게 문자열을 변경할 때는 비효율적임 String이 내용을 변경하기 위해선 새로운 객체를 생성하고 복사하는 방식이기 때문 ex) String str = "hi"; 라고 하면 "hi" 라는 Literal 객체를 생성하고 이를 복사해 옴 str = "hello"; 라고 다시 해주면 다시 "hello" 객체 생성 후 복사해 옴 Stri..
[JAVA] 추상 클래스(Abstract Class)와 인터페이스(interface), 인터페이스의 default method
2022. 10. 3. 21:54
JAVA/기본 문법
추상 클래스 란? 하나 이상의 추상 메소드를 포함한 클래스 추상 메소드 란? 선언부만 존재하고, 구현부는 존재하지 않는 메소드 자식 클래스가 추상 클래스를 상속받고, 자식 클래스에서 추상 메소드를 오버라이딩을 통해 직접 구현해야 함 반드시 특정 메소드를 만들도록 에러를 발생시켜서 강제성 부여 abstract static class Animal { abstract void speak(); } static class Dog extends Animal { @Override void speak() { System.out.println("멍멍"); } } 만약 위 코드에서 Animal을 상속받은 Dog 클래스에 speak 메소드가 구현되지 않았으면 에러 발생 또한 추상 클래스로는 객체를 생성할 수 없음 Anima..
[JAVA] 다형성(Polymorphism) 정의 및 활용(UpCasting, DownCasting) + instanceof
2022. 10. 3. 21:12
JAVA/기본 문법
다형성(Polymorphism) 이란? 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미 객체들의 타입이 다르면 똑같은 메세지(같은 메소드명)가 전달되더라도 서로 다른 동작을 함 ex) cat.speak() => 야옹, dog.speak() => 멍멍 다형성은 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나임 다형성 예제 public class Test { public static void main(String[] args) { Dog dog = new Dog(); Animal animal = new Dog(); // Animal animal = (Animal) new Dog(); 와 동일 animal.speak(); animal.speak2(); // 에러 발생 Dog dog2 = new A..