Backend
home
📚

Java 기본 개념 압축 정리 - 1

생성 일시
2025/01/22 10:39
태그
Java
게시일
2025/01/22
최종 편집 일시
2025/02/09 13:26

변수

변수의 선언과 저장
public class Variable1 { public static void main(String[] args) { int x = 10; int y = 5; System.out.println(x + y); System.out.println(x - y); System.out.println(x / y); System.out.println(x * y); } }
Java
복사
변수의 타입
숫자
int, long : 정수를 저장하기 위한 타입(20억이 넘을 땐 long)
float, double : 실수를 저장하기 위한 타입
문자
char : 문자(character)를 저장하기 위한 타입
String : 여러 문자(문자열, string) 를 저장하기 위한 타입
예제
public class Variable2 { public static void main(String[] args) { int x = 100; double pi = 3.14; char ch = 'a'; String str = "abc"; System.out.println(x); System.out.println(pi); System.out.println(ch); System.out.println(str); } }
Java
복사
상수와 리터럴
상수 : 한번 값을 저장하면 다른 값으로 변경 안 됨
리터럴 : ‘상수’의 다른 이름 (그 자체로 값을 의미)
final int MAX_VALUE; // 정수형 상수 MAX_VALUE 선언 MAX_VALUE = 100; // 상수에 처음으로 값 저장 MAX_VALUE = 200; // 상수에 저장된 값 변경 x
Java
복사
문자열 결합
public class String1 { public static void main(String[] args) { String name = "Ja" + "va"; String str = name + 8.0; System.out.println(name); // Java System.out.println(str); // Java8.0 System.out.println(7 + " "); // 7 System.out.println(" " + 7); // 7 System.out.println(7 + ""); // 7 System.out.println("" + 7); // 7 System.out.println("" + ""); System.out.println(7 + 7 + ""); // 14 System.out.println("" + 7 + 7); // 77 } }
Java
복사
두 변수 값 바꾸기
public class Variable3 { public static void main(String[] args) { int x = 10, y = 5; System.out.println("x = " + x); System.out.println("y = " + y); int tmp = x; x = y; y = tmp; System.out.println("x = " + x); System.out.println("y = " + y); } }
Java
복사
화면으로부터 입력받기
public class ScannerExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("두자리 정수를 하나 입력해주세요."); // 10 String input = scanner.nextLine(); int num = Integer.parseInt(input); System.out.println("입력내용 : " + input); // 입력내용 : 10 System.out.printf("num=%d%n", num); // num=10 } }
Java
복사

연산자

증감 연산자
public class Exercise1 { public static void main(String[] args) { int i = 5, j = 5; System.out.println(i++); // 후위 증가 System.out.println(++j); // 전위 증가 System.out.println("i = " + i + ", j = " + j); } }
Java
복사
형변환 연산자 - 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
public class Exercise2 { public static void main(String[] args) { double d = 85.4; int score = (int) d; System.out.println("score=" + score); System.out.println("d=" + d); } }
Java
복사
Math.round() - 소수점 첫째 자리에서 반올림한 결과를 정수로 반환 (만약에 다른 자리에서 반올림을 하려면 10의 n제곱으로 적절히 곱하고 나누어야 함)
public class Exercise3 { public static void main(String[] args) { double pi = 3.141592; double shortPi = Math.round(pi * 1000) / 1000.0; System.out.println(shortPi); } }
Java
복사
문자열 비교
String str = new String("abc"); // equals()는 두 문자열의 내용이 같으면 true, 다르면 false를 결과로 반환 boolean result = str.equals("abc");
Java
복사

배열

배열의 출력
import java.util.Arrays; public class Exercise1 { public static void main(String[] args) { int[] iArr1 = new int[10]; for (int i = 0; i < iArr1.length; i++) { iArr1[i] += i + 1; } for (int i = 0; i < iArr1.length; i++) { System.out.print(iArr1[i] + ","); } System.out.println(); System.out.println(Arrays.toString(iArr1)); } } 결과: 1,2,3,4,5,6,7,8,9,10, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Java
복사
String 배열의 초기화
public class StringArray { public static void main(String[] args) { String[] names = {"Kim", "Park", "Yi"}; for (int i = 0; i < names.length; i++) { System.out.println("names["+i+"]:"+names[i]); } String tmp = names[2]; System.out.println("tmp:"+tmp); names[0] = "Yu"; for (int i = 0; i < names.length; i++) { System.out.println(names[i]); } } } == 결과 == names[0]:Kim names[1]:Park names[2]:Yi tmp:Yi Yu Park Yi
Java
복사
String 클래스
자바에서는 char 배열이 아닌 String 클래스를 이용하여 처리한다. String 클래스가 char 배열에 여러 가지 기능을 추가하여 확장한 것이기 때문이다. 그래서 char 배열을 사용하는 것보다 String 클래스를 사용하는 것이 문자열을 다루기 더 편하다.
String 클래스는 char 배열에 기능(메서드)을 추가한 것이다.
String 클래스의 주요 매서드
char charAt(int index)
문자열에서 해당 위치(index)에 있는 문자를 반환한다.
int length()
문자열의 길이를 반환한다.
String substring(int from, int to)
문자열에서 해당 범위(from~to)의 문자열을 반환한다. (to는 포함 안 됨)
boolean equals(Object obj)
문자열의 내용이 같은지 확인한다. 같으면 결과는 true, 다르면 false
char[] toCharArray()
문자열을 문자배열(char[])로 변환해서 반환한다.

객체지향 언어

객체지향 언어의 정의
객체지향 언어는 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것
코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해짐
객체지향 언어의 특징
코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
코드의 관리가 용이하다.
코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
신뢰성이 높은 프로그래밍을 가능하게 한다.
제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
클래스와 객체
클래스
정의: 클래스란 객체를 정의해 놓은 것
용도: 클래스는 객체를 생성하는데 사용
객체: 객체의 사전적인 정의는 ‘실제로 존재하는 것’이다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 곧 객체이다. 객체지향 이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다.
정의: 실제로 존재하는 것. 사물 또는 개념
용도: 객체가 가지고 있는 기능과 속성에 따라 다름
유형의 객체: 책상, 의자, 자동차, TV와 같은 사물
무형의 객체: 수학공식, 프로그램 에러와 같은 논리나 개념
예시 - 클래스를 정의하고 클래스를 통해 객체를 생성하는 이유는 설계도를 통해서 제품을 만드는 이유와 같다!
클래스
객체
제품 설계도
제품
TV 설계도
TV
붕어빵 기계
붕어빵
객체의 구성요소 - 속성과 기능
객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 다수의 기능을 갖는다. 즉, 객체는 속성과 기능의 집합이라고 할 수 있다. 그리고 객체가 가지고 있는 속성과 기능을 그 객체의 멤버(구성원, member)라 한다. 클래스란 객체를 정의한 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어 있다. 클래스로부터 객체를 생성하면, 클래스에 정의된 속성과 기능을 가진 객체가 만들어지는 것이다.
속성 - 크기, 길이, 높이, 색상, 볼륨, 채널 등
기능 - 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등
객체지향 프로그래밍에서는 속성과 기능을 각각 변수와 메서드로 표현한다. 속성(property) -> 멤버변수(variable) 기능(function) -> 메서드 채널 -> int channel 채널 높이기 -> channelUp() {...} class Tv { String color; // 색깔 boolean power; // 전원상태 int channel; // 채널 void power() { power != power; } void channelUp() { channel++; } void channelDown(). { channel--; }
Java
복사
객체와 인스턴스
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate) 라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance) 라고한다.
예시
TV 클래스로부터 만들어진 객체를 TV 클래스의 인스턴스라고 한다. 인스턴스는 객체와 같은 의미이지만, 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 인스턴스는 어떤 클래스로부터 만들어진 것인지를 보다 강조하는 의미를 가지고 있다.
예를 들면 ‘책상은 인스턴스다.’ 라고 하기 보다는 ‘책상은 객체다.’ 라는 쪽이, ‘책상은 책상 클래스의 객체이다.’ 라고 하기 보다는 ‘책상은 책상 클래스의 인스턴스다.’ 라고 하는 것이 더 자연스럽다.
인스턴스와 객체는 같은 의미이므로 두 용어 사용을 엄격히 구분할 필요는 없지만, 위의 예에서 본 것과 같이 문맥에 따라 구별하여 사용하는 것이 좋다.
인스턴스화 클래스 ------------> 인스턴스(객체)
Java
복사