좋은 객체지향 설계를 위해 사용되는 다섯 가지 원칙을 SOLID라고 합니다. SOLID는 각 원칙의 첫 글자를 따서 만들어진 약어입니다. 이 원칙들은 소프트웨어의 유지보수성, 재사용성, 확장성을 향상시키는 데 도움이 되는 지침을 제공합니다.1. 단일 책임 원칙 (Single Responsibility Principle - SRP)하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이는 클래스가 특정한 기능이나 역할에 집중되도록 하여 코드의 응집성을 높이고, 변경 사항이 발생할 때 해당 클래스만 수정하면 되도록 합니다. 즉 변경사항이 발생할 때 파급효과가 적다면 단일책임원칙을 잘 따른것으로 볼 수 있습니다. 아래는 예시코드입니다. SRP 위반 예시) class R..
자바에서 Scanner 클래스는 입력 받을 직접 입력을 받기 위한 클래스입니다.이 클래스는 데이터를 직접 입력받아 테스트를 하고자할 때 사용할 수 있습니다.1. 문자열 타입import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.next(); // next는 스페이스를 비롯한 공백 단위로 끊어서 문자열을 받음 String str2 = sc.next(); System.out.println("str1: " + str1); System.out.print..
자바에서 메소드(Method)는 클래스 내에서 특정 작업을 수행하는 코드 블록입니다. 메소드는 객체지향 프로그래밍에서 기능을 캡슐화하고 코드의 재사용성을 높이는 중요한 요소입니다. 1. 자바 메소드의 구조메소드는 일련의 문장들로 이루어진 코드 블록입니다. 메소드는 다음과 같은 구조를 가지고 있습니다.[접근 제어자] [기타 제어자] 반환타입 메소드이름([매개변수 목록]) { // 메소드의 실행 코드 return 반환값; // 반환타입이 void가 아닌 경우}1. 접근 제어자: 메소드에 접근할 수 있는 범위를 지정합니다. 일반적으로 public, private, protected, default 중 하나를 사용합니다.2. 기타 제어자: 메소드의 특성을 추가적으로 제어하기 위한 키워드입니다. 예를 ..
제어문에는 조건문, 반복문 등이 있습니다.1.조건문1) if-else문if-else문은 조건의 참과 거짓을 판단하여 실행문을 실행할지 말지를 결정하는 제어문입니다.boolean result = true;int a = 10, b = 20;int c = 15;// if : 괄호 안의 값이 true면 다음 명령 실행// 조건문 다음에 실행해야할 문장이 하나라면 {}를 사용하지 않아도 됨if (result) System.out.println("참"); //출력: 참if (!result) System.out.println("거짓");// 실행할 명령이 한 줄 이상일 경우 블록 사용if (c >= a && c 여러줄인 경우 실행블록을 넣어야 함if(!result) System.out.println("참이다");..
자바에서 타입추론은 JAVA 10에서 도입되었습니다. 파이썬이나 자바스크립트처럼 타입을 지정하지 않고 변수를 선언합니다. 타입추론은 항상 사용할 수 있는 것은 아니고 특정상황에서만 사용가능합니다.그리고 지역변수로만 사용가능하며 클래스의 필드로도 사용할 수 없습니다. // var를 사용해서 변수를 선언하고 초기화var intNum = 1;var doubleNum = 3.14;var charLet = 'A';var StringWord = "안녕하세요";// 선언만 할 수는 없음 -> 컴파일러가 타입을 추론할 수 없기 때문에// null로 초기화 할 수도 없음//var notInit;//var nullVar = null;// 자료형을 변경하는 것이 불가//intNum = 1.23; // 정수값에서 실수값으로 ..
자바에서 배열은 특정 타입의 데이터를 고정된 개수만큼 묶어서 사용합니다.1. 선언과 초기화 // 사용할 자료형 뒤에 []를 붙여 선언char[] guk = {'가', '나', '다', '라', '마'};// length : 배열의 길이 반환int length = guk.length;// [] 안에 인덱스 정수를 넣어 접근// 0부터 시작char first = guk[0];//String first_string = guk[0]; //에러 발생 -> 타입이 다름char last = guk[guk.length - 1];// 초기화하지 않고 선언 -> 타입[] 변수명 = new 타입[] -> new 타입[]안의 값은 요소의 개수// 요소에 null이 가능하면 요소가 null이 되고 null을 허용하지 ..
1. length()length는 문자열의 길이를 측정하는 메서드입니다.int i1 = "".length(); // 0int i2 = "헬로".length(); //2int i3 = "Hello".length(); //5int i4 = "안녕하세요".length(); //5 2. isEmpty(), isBlank()이 두개의 메서드는 문자열이 비어있는지 확인하는 메서드입니다. 두 메서드의 차이는 isEmpty는 공백도 문자열로 인정한다는 것이며 isBlank는 공백을 문자열로 인정하지 않는다는 것입니다. //문자열이 비어있는지 여부String str1 = "";String str2 = " \t\n";int i5 = str1.length(); //0int i6 = str2.length(); //3 -> 공..
자바에서 final로 선언된 요소는 변경될 수 없는 값이나 속성을 나타냅니다.1. final 변수final로 선언된 변수는 상수(Constant)로 간주되어 값을 변경할 수 없습니다. 변수에 처음으로 값을 할당한 이후에는 재할당이 불가능합니다. final 변수는 초기화되어야 하며, 생성자나 변수 선언 시에 초기화할 수 있습니다. final 변수의 이름은 관례적으로 대문자와 단어 사이를 언더스코어(_)로 구분하는 형식인 스네이크 케이스(Snake Case)를 사용합니다.예시)public class MyClass { public static final int MAX_VALUE = 100; private final String name; public MyClass(String name) { ..
삼항 연산자는 세 개의 피연산자를 가지며, 조건식을 평가하여 결과를 반환하는 연산자입니다. 자바에서의 삼항 연산자는 다음과 같은 형식을 갖습니다조건식 ? 식1 : 식2위의 형식에서 조건식은 참 또는 거짓으로 평가될 수 있는 불리언(boolean) 표현식이고, 식1과 식2는 각각 조건식이 참일 때와 거짓일 때 평가될 표현식입니다.삼항 연산자는 다음과 같은 동작을 수행합니다:조건식이 참인 경우, 식1의 결과가 전체 표현식의 결과가 됩니다.조건식이 거짓인 경우, 식2의 결과가 전체 표현식의 결과가 됩니다.예를 들어, 다음과 같은 코드를 살펴봅시다:int a = 5;int b = 10;int max = (a > b) ? a : b;위의 코드에서 조건식은 a > b이고, a와 b를 비교하여 참 또는 거짓으로 평가..
자바는 정적 자료형을 가지고 있습니다. 따라서 변수나 값을 선언할때는 반드시 자료형을 먼저 입력해야합니다. 예컨대 a라는 변수가 정수형이라면 int a; 라고 선언할 수 있습니다. 이러한 자료형에는 여러가지가 있습니다. 1. 정수형정수형의 크기나 표현범위를 표로 표현해보면 아래와 같습니다.자료형크기표현 범위byte1바이트 (8비트)-128 ~ 127 (-2^7 ~ 2^7-1)short2바이트-32,768 ~ 32,767int4바이트-2,147,483,648 ~ 2,147,483,647long8바이트-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8071) byte,shortbyte와 short는 아주 작은 수를 표현할때 사용합니다. 따라서 표현범위도 매우 작으..