제목그대로다.'클래스 본문(필드 선언부)에는 실행문 못씀!!' ( 여기서말하는 실행문이란, "초기화문"이 아닌, if, for, System.out.println 등과 같은 "실행문"을 말함) 이후 예제는 추후에 정리예정(2025/08/24).----------------------오늘(2025/09/05)이 그 '추후'가 될 줄은 몰랐다.방금 올린 콘솔에 로딩 중 출력하기 예제를 만들다가, 에러가 나서 고민하다가'클래스 본문(필드 선언부)에는 실행문 못씀!!' 이 말이 떠올랐다. 일단 두개의 예제를 보자.차이는 main 매서드냐 아니냐이고, 코드는 똑같다. (main 매서드에서 바로 실행) ↓public class main { public static void main(String[] args) ..
자바로 콘솔에 로딩 중을 구현해보겠다.cmd에서 어떤거 다운받을때 |/-\|/-\|/-\|/-\|/-\ 이런거 많이 봤을것이다. ( 이런 모양이 반복해서 나오는거 말이다.! ) 예제부터 보자.public class main { public static void main(String[] args) { String[] animation = {"|", "/", "-", "\\"}; int totalSeconds = 5; // 로딩을 5초 동안 진행 int interval = 100; // 0.1초마다 업데이트 int loops = totalSeconds * 1000 / interval; // 총 반복 횟수 try { Sys..
■ Arrys.asList 매서드 ▶ 배열을 리스트로 변환. ☆ 하지만, 원본 배열와 연결된다는 특징이 있음!! ( 배열을 리스트처럼 보이도록 해주기 때문에, 리스트의 값을 수정하면, 마치 원본 배열의 값을 수정하는 결과가 나타남! ) 사용예제 )import java.util.Arrays;import java.util.List;public class AsListLinkExample { public static void main(String[] args) { // 배열 선언! String[] fruitsArray = {"사과", "딸기", "바나나"}; // Arrays.asList 사용 ( 배열 → 리스트화! ) List fruitsLis..
■ 스코프란?▶ "어떤 변수에 접근 가능한 범위" 뭐 클래스 개념도 모르고 파이썬으로 코드치던 시절에도 스코프 밖에서는 해당 스코프 안에 선언한 변수를 사용할 수 없다는 사실은 알고 있었다.하지만, 접근 가능한 범위를 "스코프(scope)"라는 용어를 사용해서 지칭한다는 사실은 이제 알았다 ㅋㅋㅋ또, 여기서 접근 가능한 범위(즉, 스코프)란 우리가 매서드를 생성하고, 구현하는 부분(구현부)인 중괄호( "{}" ) 내부를 말한다. 그래도 확실하게 이해하자는 의미에서 예제로 확인하도록 하자.public void loopExample() { int total = 0; // 메서드 지역변수 (메서드 전체에서 사용 가능) int count = 0; // while 블록 밖에서 선언 → while 안/밖..
우리가 프로그램을 실행할 때는 크게 두 과정을 거친다.컴파일 타임과 런 타임이 이 과정에 해당한다. 각각 어떤 과정인지 간단하게 설명하면 다음과 같다. ● 컴파일 타임 : 소스 코드를 컴퓨터가 이해할 수 있는 언어로 변환하는 단계;● 런 타임 : 변환된 프로그램이 실제로 실행되는 단계; 프로그래밍언어는 크게 인터프리터 언어와 컴파일 언어로 나뉘는데, 인터프리터 언어로 코드를 한줄씩 읽고(컴파일), 실행(런타임)한다는 개념에서 컴파일 타임, 런 타임 과정을 거치는 것이다. 이때, 프로그램의 에러의 종류도 두 가지로 나뉜다.컴파일 에러, 런 타임 에러. 의미도 이름 그대로이다. ● 컴파일 에러 : 프로그램을 실행하기 전에 소스 코드를 기계어로 바꾸는 과정(컴파일 타임)에서 발생하는 오류이다. 문법을 틀리..
■ 제네릭이란?▶ 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 문법이다. ArrayList list = new ArrayList();자바에서 자주 쓰는 구문이다. 여기에 있는 (꺾쇠 괄호 )가 바로 제네릭이다. 이 괄호 안에는 타입명을 기재한다(여기서는 String이다 ).그리고, 이 (꺾쇠 괄호)를 "다이아몬드 연산자"라고 한다. ● 제네릭 타입 매개변수다이아몬드 연산자()에 식별자를 넣어 이를 파라미터화할 수 있다(타입 매개변수).타입 매개변수는 제네릭을 이용한 클래스나 메소드를 설계할 때 사용된다.예제를 살펴보자)class FruitBox { List fruits = new ArrayList(); public void add(T fruit) { fruits.a..
자바에서, 기본형을 형 변환하기 위해서는 캐스팅이라는 문법을 사용하였다.int num = (int)3.5;하지만, 이것은 기본형에서만 사용할 수 있다. 그렇다면, 레퍼클래스에서는 어떻게 사용할 수 있을까? 여기서 바로 업캐스팅과 다운 캐스팅 개념이 사용되는것이다.업캐스팅과 다운캐스팅을 이해하기 위해서는 부모 클래스와 자식클래스를 이해해야한다.자식클래스는 부모 클래스를 상속하고 있기에 부모의 멤버를 모두 가지고 있다.반면 부모 클래스는 자식 클래스의 모든 멤버를 가지고 있지 않다. 즉, 참조형의 형변환은 해당 참조변수의 사용할 수 있는 멤버의 개수를 조절하는 것이다. 예시를 참고하자)class Parent { int age; String name;}class Child extends Parent { /* ..
자바의 참조형을 왜 사용하는지에 대한 고민으로 이 글을 쓰게되었다. 자바에서는 매개변수를 객체형식으로 다루거나, null값을 다루는 등의 경우가 있다. 이런 경우때문에 자바에서는 참조형이라는 자료형이 있다고 한다. ( 자바에서 굳이 왜 int와 같은 역할을 하는 Integer를 만들었는지, 즉 참조형의 사용이유, 기본 타입의 데이터를 객체로 표현해야 하는 경우이다.) 따라서, 기본타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 레퍼 클래스(wrapper class)라고 한다. 레퍼클래스를 이용하면 각 타입에 해당하는 데이터를 매개변수로 전달받아 해당 값을 가지는 객체로 만들어준다. 예제를 참고하자.Integer num1 = new Integer(5); // 기본형 타입 정수를..