
자바는 원하는 무언가를 만들어내기 전에 먼저 그 '무언가' 를 만들어 내기 위한 공장을 만들어야 합니다.예를들어, 자동차를 만들기 위해서는 자동차라는 공장을 먼저 만들어야 하는 것 과 같습니다.Car 라는 클래스를 하나 만들어 줍니다.이것이 자동차 공장입니다.하지만 자

필드는 쉽게말해 속성입니다. 앞의 포스트를 보면 자동차 공장이 있습니다. 그 자동차 공장 안에서 생산되는 차들은 같지만 각각의 차들이 가지는 생산번호는 다를 것 입니다. 이와 같이 필드는 객체가 갖고 있는 속성을 말합니다. 클래스 Car 라는 자동차 공장에서

메서드는 클래스가 가지고 있는 기능입니다.앞의 포스트처럼 자동차 공장을 예시로 들어봅시다.클릭시 앞의 포스트로 이동자동차 공장에서는 자동차를 생산할 때 일련 번호, 이름 과 같은 필드(속성)을 가지게 됩니다.이처럼 필드는 자동차에 대한 '상태' 를 나타냅니다.하지만

자바에서 string 을 사용할 때 , new 를 사용하지 않아도 작동한다는 특징이 있다. 그렇다면 new를 사용한 코드와 그렇지 않은 코드는 어떠한 차이가 있을까? 🎇 String str = "hello"; new 를 사용하지 않고 코드를 작성하면 주소를

코드에서 사용되는 변수는 어디에서나 사용 가능할까요?아래와 같은 클래스바로 아래 있는 변수는 메서드 내부에서는 사용 가능합니다.하지만 main 에서는 사용 불가능하다고 빨간줄이 뜹니다.이러한 이유는 모든 클래스는 인스턴스화 하지 않은 채로 사용할 수 없기 때문입니다.t

자바 코드에서 생성자는 무엇을 말할까요?위 코드에서 Car( ) 이 바로 생성자입니다.( ) 안에 매개변수(Parameter) 가 아무것도 없는 것을 볼 수 있습니다.이 처럼 매개변수가 없는 생성자를 기본 생성자 라고 합니다.사용자가 생성자를 만들지 않으면 컴파일 시에

💡 Enum Enum 은 언제 사용하면 좋을까요? 특정한 값만 가져다가 사용하고 싶을 때 쓰면 좋습니다. 예시를 들어보겠습니다. String 타입인 gender1 에는 성별인 Male, Female 만 들어가게 설정하려고 합니다. 하지만 String 이기 때문에

앞서 이 전 포스트와 이어지는 코드를 담고 있습니다.앞의 포스트 보러가기 저번 코드를 보시면 알 수 있듯, 메서드에서도 이름, id 가 나오고 , 생성자에서도 이름, id 가 나오고 class 내부에서도 나오는 것을 볼 수 있습니다. 코딩을 할 때 변수의 이름은 직관적

가끔 코드를 작성하다가 용도는 다르지만 같은 이름의 메서드, 생성자들이 필요할 때가 있다.그렇다고 인위적으로 다른 이름을 지어주자니 애매할 때! 필요한게 오버로딩이다.오버로딩을 하면 같은 이름으로 생성자, 메서드를 만들 수 있다.하지만 아래 조건은 지켜야한다.1\. 메

클래스 관리를 위해 사용하는 패키지 관련 클래스들을 묶어서 관리하기 위해서 패키지를 씀 이름은 대부분 도메인 이름을 거꾸로 적은 후 프로젝트 이름을 붙여 사용 패키지가 있는 클래스를 사용할 때는 import 사용 다른 패키지에 들어있는 걸 사용할 때는 모두 import

사회에서도 상속이라는 단어는 흔하게 쓰입니다.쓰이는 그대로 부모의 것을 자녀가 물려받는 것을 얘기합니다.자바에서도 마찬가지 입니다.상위클래스의 속성을 하위클래스가 그대로 물려받는것을 상속이라고 말합니다.상속을 하게되면 불필요한 중복 코드를 없앨 수 있습니다.그렇다면 상

우리는 살면서 모두 비밀을 갖고 있습니다.자신의 몸무게와 같은 남에게 공개하고 싶지 않거나, 혹은 공개하면 안되는 정보들이 있을 것 입니다.이처럼 자바에서도 남에게 공개하지 않고 비밀을 만들 수 있는 기능이 있습니다.Encapsulation 캡슐화내부의 속성을 외부에서

메서드가 하나라도 추상 메서드이면 클래스도 추상 클래스가 될 수 밖에 없다. 추상클래스 내부에는 일반 메서드도 구현 가능 추상클래스는 구체적이지 않기 때문에 상속 중 부모의 역할은 가능하나 객체를 생성할 수 는 없다.

오버라이딩은 부모가 갖고있는 메서드를 자식이 똑같이 갖고 있으며 부모의 메서드를 수정 가능하다.Overriding 오버라이딩메서드를 재정의 하는 것부모 클래스의 메소드를 자식 클래스에서 재정의하여 사용한다.아래의 Car 클래스를 상속받아 오버라이딩하는 예제이다.이렇게

클래스 형변환의 예시를 들어보자.형변환 예시에 앞서 부모 타입으로 자식의 객체를 참조하는건 가능하다. 하지만 이 경우 부모가 가지고 있는 내용만 사용 가능하다.(메서드는 부모가 알고있는 메서드만 사용 가능하다.)부모가 가지고 있지 않고 자식만 갖고 있는 메서드는 사용

내부 클래스 클래스 안에 선언된 클래스

🎇 Exception 예외처리 코드를 작성하다 보면 생각치도 못한 예외의 오류가 발생합니다. 이런 예외를 어떻게 처리하는지 봅시다. 예외처리는 try - catch - finally 로 구분되어 있습니다. 💡 try try 에는 수행할 코드를 적습니다. 예외

Throws 오류를 처리하지 않고 나를 호출 한 쪽에서 처리하라고 넘기는 기능혹시 예외처리(try-catch-finally)를 처음 들어보시는 분들은 아래 포스트를 읽고 오시는 것을 추천드립니다.예외처리 포스트 바로가기Throws 의 사용법은 예외가 발생할 곳에 'th

exception 이 이미 정의된 걸 사용할 수도 있고 사용자가 직접 exception 을 정의해서 사용할 수 도 있습니다.사용자 정의 Exception 은 exception 이나 runTimeException 이라는 클래스를 상속받아 새로운 Exception cla

Object 클래스 모든 클래스의 최상위 클래스 아무것도 상속받지 않으면 자동으로 object 를 상속받기 때문 이 말은 object 가 갖고 있는 메서드는 모든 클래스에서 사용 가능

보통 자바로 코드를 작성할 때 객체를 첫 번째 방법처럼 만든다.하지만 자바가 업데이트 되면서 두 번째 방법처럼 굳이 new 를 쓰지 않아도 자동으로 객체가 생성된다.우리는 그냥 '5' 라고 쓰지만 컴파일러는 컴파일 하면서 new Integer(5) 으로 인식한다.자동으

string buffer 가 가지고 있는 메서드들은 대부분 자기 자신을 반환한다. >method Chaining 자기자신을 리턴하여 계속해서 자신의 메소드를 호출하는 방식

아래의 두 코드가 어떤점이 다를까?code1)code2)바로 new 연산자의 사용 빈도 차이이다.자바에서는 new 연산자를 많이 사용하게되면 속도가 느려진다.반면 StringBuffer 는 자기자신을 반환하기 때문에 새로 만들 필요 없이 한 번의 선언에서 계속 추가가

생성자(Constructor)가 프라이빗이라 new 연산자로 객체를 생성 할 수 없다.다만 모든 메서드와 속성이 static 하기 때문에 객체를 생성하지 않고도 사용이 가능하다.반환 타입은 더블이다.0.0 ~ 1.0 사이의 값을 랜덤으로 반환한다.

Collection FrameWork자료구조 클래스들을 컬렉션 프레임워크 라고 한다.중복 ⭕저장 순서 기억 ❌add( ) : 자료를 추가한다.size( ) : 저장된 자료의 개수를 반환한다.iterator( ) : 자료를 꺼내기 위한 iterator interface

형변환도 상속관계에서는 자식 클래스만 사용 가능하다.이게 무슨 소리냐 하면Object 는 최상위 클래스이다. 그렇기에 자식클래스인 String, int 형 등등이 사용할 수 있다.하지만 자식클래스가 부모 클래스의 기능을 사용하는 것은 괜찮아도 부모 클래스가 자식클래스만

<interface> set 은 <interface> Collection 을 상속받는다.중복 허용 ❌add( )같은 자료 → True다른 자료 → Falsesize( )자료의 개수 반환set 은 인터페이스기 때문에 new 연산자로 객체를 생성할 수 없다.그래

<interface> List 는 <interface> Collection 을 상속받는다.Collection 상속받아서 사용 가능한 메서드add( ) : 자료 추가size( ) : 저장된 자료 수를 반환iterator( ) : 자료를 꺼냄Iterator 의

<key, value> 쌍으로 저장key 는 중복 ❌만약 중복되면 원래 있던 값을 나중에 들어온 값으로 대체 후 key값을 유지put(Object, Object)key, value 값을 저장get(Object)key 값을 매개변수로 받아 값을 꺼내기keySet(

byte 단위의 입출력은 클래스의 이름이 inputStream, outputStream 으로 끝난다.fileOutputStream : 파일을 쓰는 객체fileOutputStream : 파일로부터 읽어들이는 객체파일이 없을 경우나 읽히지 않을 경우 등 여러 경우가 있기

이 전에는 항상 예외처리를 해줄때 try-catch-finally 를 이용해 파일을 열고 읽고 쓰고 닫았다.하지만 JAVA7 부터 try-with-resources 를 쓰는게 가능해졌다.try-with-resources 사용한 자원들을 자동으로 종료시켜주는 기능즉 cl

Char 단위의 입출력 중에 두 가지를 소개할 것이다.첫 번쨰는 console 을 이용해서 직접 사용자에게 입력을 받는 것이고두 번쨰는 파일로 한 줄씩 입력받아서 다시 파일로 출력하는 것이다.두 경우 모두 한 줄씩 읽어오는 객체인 BufferedReader 가 사용된다