Bible, Lee, Data
Faith, software, data, and everyday life.
JavaAll posts
[Java] 메소드 오버로딩 (Method Overloading)
메소드마다 이름을 다르게 하여 기능을 명확하게 할 수도 있지만, 프로젝트가 커질수록 메소드의 개수 또한 많아지므로 모두 기억하고 사용하기 어렵다. 이때 사용할 수 있는 게 메소드 오버로딩이다. 메소드 오버로딩은 메소드 이름을 통일하여 여러 개 정의하는 것을 의미하며, 이때 메소드의 매개변수의 개수, 순서, 또는 타입이 다르도록 하여 중복 정의가 가능하다. 동일한 이름의 메소드가 다양한 상황에서 사용되며, 메소드 호출 시 전달되는 인자의 타입이나 개수에 따라 적합한 메소드가 자동으로 선택되어 개발을 편하게 해 준다. 이러한 구현이 어렵지 않으므로 실제로 많이 사용되는 기술이기도 하다. 그럼, 메소드를 여러 개 선언해 보면서 위의 조건이 어떻게 적용되는지 알아보도록 하자! 💡메소드 오버로딩 구현 가능 조건 ..
[Java] 이클립스 코드 조각 (Templates)
이클립스에서 반복적으로 사용하는 코드는 이클립스 코드 조각에 넣어두면 사용하기 편리하다. 이렇게 코드 조각에 넣은 코드는 Ctrl + Space 단축키를 눌러 실행시킬 수 있다. 저장되어 있는 코드 조각을 확인해보고, 참고하여 반복적으로 사용하는 코드를 추가해보도록 하자. 이클립스에서 Window(윈도우) 메뉴를 열고 Preferences(환경 설정)를 선택한다. Preferences 창에서 Java > Editor > Templates를 선택한 뒤, New 버튼을 클릭하여 새 코드 조각을 추가할 수 있다. 💡println() 메소드 내장되어 있는 println() 메소드를 살펴보면 다음과 같다. Name: sysout Description: print to standard out Pattern: Sys..
[Java] 연산자 7가지: 산술, 비교, 논리, 대입, 증감, 조건, 비트
💡산술 연산자 산술 연산자에는 사칙연산에 해당하는 +, -, *, /와 나머지 %가 있다. 2항 연산자이며, 피연산자를 숫자형(정수, 실수)으로 가진다. 정수형 연산 int a = 10; int b = 3; System.out.printf("%d + %d = %d\n", a, b, a + b);// 10 + 3 = 13 System.out.printf("%d - %d = %d\n", a, b, a - b);// 10 - 3 = 7 System.out.printf("%d * %d = %d\n", a, b, a * b);// 10 * 3 = 30 System.out.printf("%d / %d = %d\n", a, b, a / b);// 10 / 3 = 3 System.out.printf("%d %% %d ..
[Java] 입출력 (I/O): Input, Output
💡Input 자바 콘솔 입력 방법에는 대표적으로 read 메소드, BufferedReader 클래스, Scanner 클래스가 있다. read 메소드 int num = System.in.read(); // 10 입력 System.out.println("출력: " + num); // 출력: 49 System.out.printf("출력: %c\n", num); // 출력: 1 문자 입력: 10 출력: 49 출력: 1 콘솔에 숫자 10을 입력해보자. 그러면 1의 아스키코드인 49가 출력될 것이다. 10을 입력했음에도 1이 출력되는 이유는 read라는 메소드가 한 번에 1byte씩 읽기 때문이다. 또한, 한글을 입력할 때 오류가 생기므로 read()는 잘 사용하지 않는다. Enter (\r\n) 입력 int co..
[Java] 변수 명명법 패턴: 파스칼 표기법, 캐멀 표기법, 스네이크 표기법, 케밥 표기법, 헝가리언 표기법
변수명, 클래스명, 메소드명 등의 이름을 다음과 같이 지었더니 좀 더 관리하기 쉽다는 장점이 있어 공식화 되었다. 변수 명명법 패턴은 관습적이긴 하지만, 큰 개발 환경에서는 규칙을 따르지 않으면 혜택을 누리지 못하는 경우가 있으므로 지키지 않으면 안 되는 것 중 하나이다. 또한 팀마다 다른 Code Convention이 있다. 코드 컨벤션은 일관성 있는 코드 작성을 위해 따르는 규칙으로, 팀원과의 협업을 용이하게 하고, 작업 속도를 빠르게 할 수 있다. 💡파스칼 표기법 식별자 단어의 첫 문자를 대문자로 표기하고, 나머지 문자는 소문자로 표기하는 방법이다. 따라서 2개 이상의 단어를 합쳐서 만든 이름일 때 파스칼 표기법의 장점이 있다. 요약하자면 모든 단어를 붙이고, 각 단어의 첫 문자를 대문자로 표기하는..
[Java] 기본 데이터 타입 8가지
💡기본 데이터 타입의 종류 구분 데이터 타입 바이트 수 데이터 범위 사용 예시 논리 타입 boolean 1byte 0, 1 (false, true) boolean isTested = true; 문자 타입 char 2byte 0 ~ 65636 char grade = 'A'; 정수 타입 byte 1byte -128 ~ 127 byte num = 1; short 2byte -32768 ~ 32767 short testScore = 100; int 4byte -2147483648 ~ 2147483647 (-21억 ~ 21억) int sumScore = 12345; long 8byte -9223372036854775808 ~ -9223372036854775807 (-922경 ~ 922경) long currentT..
[Java] 개발자 환경 구축: JDK 및 Eclipse 설치
JDK는 Java Development Kit의 약자로 자바의 개발도구를 의미하며, Eclipse는 코딩할 때 사용하는 메인도구로서 자바의 실행환경을 의미한다. JDK의 종류로는 회사에 따라 여러 가지로 분류할 수 있다! 대표적으로 Oracle JDK과 Open JDK가 있으며, 소프트웨어 시장에서 무료와 유료로 구분되는 기준은 기술 지원을 받을 수 있느냐가 가장 크다. 자바 개발자 환경 구축 과정은 다음의 순서로 진행한다. 1. JDK 설치 2. JAVA_HOME 및 Path 등록 3. Eclipse 설치 4. eclipse.ini에 JDK를 등록 (이 작업은 필수는 아니다) 📌JDK 설치 https://www.oracle.com/kr/java/technologies/javase/jdk11-archiv..
Java의 이해: 리스코프 교체 원칙
리스코프 교체 원칙(Liskov Substitution Principle)은 바버라 리스코프(Barbara Liskov)에 의해 제안된 원칙으로, 객체 지향 프로그래밍(OOP)의 설계 원칙 중에 하나이다. 리스코프 교체 원칙은 상속 관계에서의 서브타입(Subtype)의 관계를 정의하고 유지하는 원칙으로, S가 T의 하위타입이라면, T 타입의 객체를 S 타입으로 교체되어도 프로그램의 의미가 변경되지 않아야 한다. 이 원칙은 상속 관계에서 하위 클래스(Subclass)가 상위 클래스(Superclass)의 기능을 대체할 수 있어야 한다는 것을 강조한다. 즉, 부모 클래스로부터 파생된 자식 클래스는 부모 클래스의 행동을 유지하면서도 자신만의 특화된 동작을 추가할 수 있어야 한다. 이를 준수하면 클라이언트 코드..