객체 지향적 프로그래밍 언어
자바를 사용하는 곳
1. 백엔드 서버 개발
2. 데이터 엔지니어링
3. 하드웨어 실행환경에 구애받고 싶지 않은 모든 곳
public class Main { // 항상 main 함수부터 실행
public static void main(String[] args) {
System.out.println("Hello World"); // println 출력이후 줄바꿈
}
}
// public static void
// public : 메소드가 표시되고 다른 유형의 다른 객체에서 호출 될 수 있음을 의미
// (다른 객체에서 액세스 가능)
// static : 메서드가 해당 클래스의 특정 인스턴스가 아니라 클래스와 연결되어 있음을 의미.
// 즉, 클래스의 객체를 만들지 않고 정적 메서드를 호출 할 수 있음
// (함수가 호출되지 전 클래스가 상주하는 클래스를 먼저 인스턴스화 할 필요 없음)
// void : 메서드에 반환 값이 없음을 의미(함수가 값을 반환하지 않음)
# 변수
int num = 5; // 정수형 변수 선언
String sparta = "Hello World" // 문자형 변수 선언
System.out.println(sparta) // Hello World
# 상수
final int num2 = 10; // 상수형 변수 선언(final로 선언 가능)
System.out.println(num2);
num2 = 50; // compile error, 상수는 처음 할당된 값을 끝까지 사용해야 함.
final int num2 = 10;
// 접근제어자 변수의자료형 변수의 이름 = 값
# 기본자료형 : 숫자, 문자, boolean, byte
# 숫자
public class Main {
public static void main(String[] args) {
short s = 1;
System.out.println(s);
int a = 3;
System.out.println(a);
float f = 5.5F;
System.out.println(f);
double d = 5.5; // 더 큰 범위의 소수
System.out.println(d);
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
}
}
// > Task :Main.main()
// 1 3 5.5 5.5
// 32767 -32768
# 문자
public class Main {
public static void main(String[] args) {
char c = 'A';
System.out.println(c); // 글자 하나 not ABC
byte data = 'd'; // 아스키코드로 100, 바이트형태로 보여줌
System.out.println(data);
}
}
// > Task :Main.main()
// A 100
참조형
# 배열
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String sparta = "Hello Sparta";
System.out.println(sparta);
int[] intEmptyArray = new int[5]; // size 5
System.out.println(Arrays.toString(intEmptyArray));
int[] intArray = new int[] {1, 2, 3, 4, 5}; // int 배열 선언과 동시에 초기화하여 값 입력
System.out.println(Arrays.toString(intArray));
String[] stringEmptyArray = new String[5]; // 참조형은 기본 값이 없음 , 그래서 null
System.out.println(Arrays.toString(stringEmptyArray));
String[] season = {"봄", "여름", "가을", "겨울"};
System.out.println(Arrays.toString(season));
}
}
// Task :Main.main()
Hello Sparta
[0, 0, 0, 0, 0]
[1, 2, 3, 4, 5]
[null, null, null, null, null]
[봄, 여름, 가을, 겨울]
# 연습
// 3개짜리 배열에 {10, 20, 30} 을 넣고 마지막 값을 출력
public class Main {
public static void main(String[] args) {
int[] intArray = new int[] {10, 20, 30};
System.out.println(intArray[intArray.length -1]);
}
}
# if
public class Main {
public static void main(String[] args) {
int num1 = 150;
int num2 = 100;
if (num1 > num2) {
System.out.println("100보다 큰 수입니다");
} else {
System.out.println("100보다 작은 수입니다.");
}
}
}
# switch문
char score = 'A';
switch (score) {
case 'A':
System.out.println("A등급입니다.");
break; // 해당하는 case의 코드를 실행 후, switch문 밖으로 나가게 해줌
case 'B':
System.out.println("B등급입니다.");
break;
case 'C':
System.out.println("C등급입니다.");
break;
default:
System.out.println("C등급보다 낮은 등급입니다.");
break;
}
# 삼항연산자
int a = 5;
String reuslt = (a < 10) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(reuslt);
# 예시
// 받은 값에 따라 등급 나누기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // system input을 받을거야
int score = sc.nextInt(); // 다음에 들어오는 숫자를 받을거야
if (score > 90 ) {
System.out.println("A")
} else if (score > 80) {
System.out.println("B")
} else {
System.out.println("C")
}
}
}
# for
public class Main {
public static void main(String[] args) {
int sum = 0;
for ( int i=0; i < 10; i++) {
sum += (i + 1);
}
System.out.println(sum);
}
} 55
# for, each문 : 결과값이 따로따로 나옴
public class Main {
public static void main(String[] args) {
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
for (String day : days) {
System.out.println(day);
}
}
}
// > Task :Main.main()
Monday Tuesday Wednesday Thursday
Friday Saturday Sunday
# While
public class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10){
if (i==5){
break;
}
i += 1;
} // 5일 때 멈춤
System.out.println(i); -> 10
int i=0;
int sum=0;
while (i<10) {
if (i == 4) {
i++;
continue; // 밑에 블럭을 한 번 스킵하고 다시 올라가서 진행
} // break 였다면 바로 멈춤
sum += (i+1);
i++;
}
System.out.println(sum); // i = 4 일때, 5 안더해줌
} -> 50
}
# do-while : 코드블럭을 무조건 한 번 실행한 후, While문의 조건을 비교
int i = 1;
int result = 0;
do {
result += i;
i += 1;
} while (i < 2);
System.out.println(result);
# 예시 (반복문, 조건문)
1- 30 중에 짝수끼리만 더하고 홀수끼리만 더한 값
public class Main {
public static void main(String[] args) {
int sumOdd = 0;
int sumEven = 0;
for (int i=0; i<30; i++) {
int value = i +1;
if (value % 2 == 0) {
sumEven += value;
} else {
sumOdd += value;
}
}
System.out.println("even : " + sumEven);
System.out.println("odd : " + sumOdd);
}
}