STATIC 블록클래스가 스태틱 영역에 로드되는 경우 실행되는 블록입니다.처음 메모리에 로딩될때 단 한번 만 실행됩니다.STATIC 블록의 동작 방식클래스 로딩과 실행클래스가 스태틱 영역에 배치되는 경우 static 블록 이 실행된다.public class 동물 { static { System.out.println("동물 클래스 레디 온!"); } }해당 클래스를 메인 메서드에서 사용시public static void main(String[] args) { 동물 뽀로로 = new 동물(); }“동물 클래스 레디 온!” 이 콘솔에 출력됨.코드가 없는 경우 동작동물 클래스를 사용하는 코드가 없는 경우, static 블록 은 실행되지 않는다.public static void main(String[] args)..
final 의미클래스 앞에 final 이 붙으면 마지막 혹은 변경 불가능 이라는 의미를 가지게 된다.final 이 사용 될 수 있는 위치는 3가지이다클래스변수메서드final 과 클래스의미클래스 앞에 final 이 붙으면, 그 클래스는 더 이상 상속될 수 없다.다른 클래스가 그 클래스를 상속할 수 없는 것이다.예제public final class 고양이 { } public class 길고양이 extends 고양이 { } // 컴파일 에러컴파일 하는 경우 에러가 발생한다.길고양이 클래스는 고양이 클래스를 상속받을 수 없기 때문이다.final 과 변수의미변수 앞에 final 이 붙게된다면, 그 변수는 한 번 초기화된 후에는 값을 변경할 수 없다.상수 가 됨.초기화의 위치정적 상수선언 시 static 블록 내에..
생성자자바에서 객체를 생성시 new 키워드를 사용함클래스명 뒤에 나오는 괄호 () 는 메서드를 의미이를 생성자 라고 부른다.해당 생성자는 클래스가 인스턴스화될 때 초기 설정을 도와준다.기본 생성자자바에서 클래스에 아무런 생성자를 정의하지 않는다면기본 생성자를 자동으로 제공한다.실제 작성한 코드public class 동물 { }자바 컴파일단계에서 기본 생성자 주입public class 동물 { public 동물() {} }인자가 있는 생성자필요에 따라 인자를 받는 생성자도 추가 가능합니다.public class 동물 { public 동물(String name) { System.out.println(name); } }동물 뽀로로 = new 동물("뽀로로"); 로 호출가능주의인자가 있는 생성자가 하나라도 정의..
package org.example.수찾기; import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { try ( BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))) ) { int n = Integer.parseInt(br.readLine()); String inputForCheck = br.readLine(); StringTokenizer st = n..
변수에 값을 저장하는 방식에는 값에 의한 호출(Call By Value) 와 참조에 의한 호출(Call By Reference) 로 구분됨.기본 자료형 변수의 복사 : Call By Valuepublic class CallByValue { public static void main(String[] args) { int a = 10; int b = a; b = 20; System.out.println(a); // 10 System.out.println(b); // 20 } }변수 a 에 10을 대입하고b에 해당 값을 복사한 다음에 ( 10 할당 )b에 20 대입a 는 10 출력b는 20 출력기본 자료형의 변수의 경우 단순히 값만 할당되기에, int b = a; 로 할당해도, 10의 값이 할당됨.객체 참조변..
추상 메서드와 추상 클래스추상 메서드선언만 있고 구현부가 없는 메서드이다.메서드에서 어떤 일을 해야하는지만 알려주고, 실제로 그 일을 어떻게 할 지는 하위 클래스에서 결정한다.같은 메서드명을 가지면서 각각 다른 기능을 수행 할 수 있게 된다.추상 메서드 예시public class Driver { public static void main(String[] args) { 동물[] 동물들 = new 동물[5]; 동물들[0] = new 쥐(); 동물들[1] = new 고양이(); 동물들[2] = new 강아지(); 동물들[3] = new 송아지(); 동물들[4] = new 병아리(); for (동물 동물 : 동물들) { 동물.울어보세요(); } } private static class 동물 { void 울어보세..