![[JAVA] String 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7jmel%2FbtrWgijgbLh%2FaAQhORl0dK4sWNrmebDAm0%2Fimg.jpg)
본 게시글은 이것이 자바다 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.문자열 클래스자바에서 문자열과 관련된 주요 클래스는 아래와 같다. String 생성자소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있다. 어떤 생성자를 이용해서 String 객체를 생성할지는 제공되는 매개값의 타입에 달려있다.아래는 사용 빈도수가 높은 생성자들이다. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte [] 배열이므로 이것을 문자열로 변환하기 위해 사용된다.//배열 전체를 String 객체로 생성String str = new String(byte[] bytes..
![[JAVA] System, Class 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtMJ7C%2FbtrWdeO2k7A%2FJBWkXRZYJUBVvAlQaz4K4k%2Fimg.jpg)
본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. System 클래스 자바 프로그램은 JVM위에서 실행된다. java.lang 패키지에 속하는 System 클래스의 정적 필드와 메소드를 이용하면 프로그램 종료, 키보드 입력, 콘솔(모니터) 출력, 현재 시간 읽기, 시스템 프로퍼티 읽기 등이 가능하다. System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성되어 있다. 정적 멤버 용도 필드 out 콘솔에 문자 출력 err 콘솔에 에러 내용 출력(빨간 글자색) in 키보드 입력 메소드 exit(int status) 프로세스 종료(JVM 종료) currentTimeMillis() 현재 시간을 밀리초 단위의 long 값으..
![[JAVA] Object 클래스(euqals(), hashCode(), toString())](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdphcHK%2FbtrVZ6D0Fc8%2FrJDwZtHMyrykrGQZEwk2o0%2Fimg.jpg)
본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않더라도 암시적으로 java.lang.Object 클래스를 상속하게 된다.따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다. Object는 자바의 최상위 부모 클래스에 해당한다.Object 클래스는 여러 메소드가 정의되어 있는데, 그중에서 euqals(), hashCode(), toString() 메소드만 살펴보겠다.객체 비교(equals())아래의 코드는 Object 클래스의 equals()메소드이다.public boolean equals(Object obj) {...}매개타입이 Object..
![[JAVA] 예외(Exception) 처리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOkcLT%2FbtrVBRfJfQj%2FEgkPNxAyLG2JG36uRqARA1%2Fimg.jpg)
본 게시글은 이것이 자바다 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.예외(Exception)자바에서는 컴퓨터 하드웨어 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 하고, 에러 이외에 프로그래머가 잘못 코딩하거나 잘못 조작하여 발생하는 오류를 예외(exception)라고 부른다. 예외에는 두 가지 종류가 있다.일반 예외(Exception)프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사를 함. 만약 예외 처리코드가 없다면 컴파일 오류가 발생실행 예외(Runtime Exception)실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에..
![[JAVA] 익명 객체(Anonymous Object)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoMJdp%2FbtrVBnZTIsb%2F0mjGXNBL9bBsfmxXWIKtu1%2Fimg.jpg)
본 게시글은 이것이 자바다 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.익명 객체클래스를 선언할 때 일반적으로 클래스 이름과 동일한 소스 파일을 생성하고 클래스를 선언한다. 한번 선언해놓고 여러 곳에서 객체를 만들어 사용하고 싶을 때 간단히 클래스 이름으로 생성자를 호출할 수 있기 때문이다. 그런데 클래스 이름이 없는 객체도 있다. 이것을 익명(anonymous) 객체라고 한다. 클래스 상속에서 자식 클래스를 명시적으로 선언하는 이유는 어디서건 이미 선언된 자식 클래스로 간단히 객체를 생성해서 사용할 수 있기 때문이다. 이것을 재사용성이 높다고 하는데, 자식 클래스가 재사용되지 않고 오로지 특정 위치에서 사용할 경우라면 자식 클래스를 명시적으로 선언하는 것은 ..
![[JAVA] 중첩 클래스(Nested Class)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUNV28%2FbtrVxs2MLR9%2FmFVdAj8vgSlAY7Q41T3Eq0%2Fimg.jpg)
본 게시글은 이것이 자바다 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.※java version "17.0.5" 2022-10-18 LTS 기준 문법임중첩 클래스객체 지향 프로그래밍에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다.클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 클래스 내부에 선언하는 것이 좋다. 중첩 클래스란 클래스 내부에 선언한 클래스를 말한다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다.class Outter{ class Inner{ //중첩 클래스 ..
![[JAVA] 인터페이스 - 다중 인터페이스, 상속, 타입 변환, 다형성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMHvvv%2FbtrVuBcYEQ1%2FsbwXLaAK4AuKNaaTKope90%2Fimg.jpg)
본 게시글은 이것이 자바다(저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.다중 인터페이스 구현구현 객체는 여러 개의 인터페이스를 implements 할 수 있다.구현 객체가 인터페이스 A와 인터페이스 B를 구현하고 있다면, 각각의 인터페이스를 통해 구현 객체를 사용할 수 있다.구현 클래스는 다음과 같이 인터페이스 A와 인터페이스 B를 implements 뒤에 쉼표로 구분해서 작성해, 모든 인터페이스가 가진 추상 메서드를 재정의해야 한다.인터페이스 A와 인터페이스 B를 구현한 객체는 다음과 같이 두 인터페이스 타입의 변수에 각각 대입될 수 있다.A 인터페이스에 3개의 추상 메서드가 있고, B 인터페이스에 2개의 추상 메서드가 있다면 인터페이스 A 변수에 대입된 객체..
![[JAVA] 인터페이스(Interface)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrDBAN%2FbtrVtSM9Gpu%2FBq5fniAClYVGiRiKCkvR7K%2Fimg.jpg)
본 게시글은 이것이 자바다 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다.인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다.개발 코드가 직접 객체의 메소드를 호출하면 간단한데 왜 중간에 인터페이스를 두는지 의문점이 생긴다.그 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서이다. 인터페이스는 하나의 객체가 ..