Java의 기초

Dec 11, 2023
Java의 기초
생성
notion image
notion image
 
1. class {모든 코드는 여기 사이에 작성 필수}
1. class {모든 코드는 여기 사이에 작성 필수}
2. 자바에서 파일명을 만들 때 class 이름과 동일해야 함.

java 변수 자료형 (data type)

notion image
os에서 사용자가 설정한 위치를 자동으로 탐색
메모리를 효율적으로 사용
os에서 사용자가 설정한 위치를 자동으로 탐색 메모리를 효율적으로 사용

식별자

public class IdenEx01 { public static void main(String[] args) { int user_money; // 절대 사용 안함 int userMoney; // 낙타 표기법 // int abc#; int method; double abc$$; // 특수문자 사용X // int 1stMoney; 숫자로 변수를 시작할 수 없음 } }
💡
변수 작성법 1. 카멜 표기법 사용 2. 숫자를 먼저 사용하지 않는다. 3. 특수 문자를 사용하지 않는다.

상수

💡
final을 자료형 앞에 기입 시 상수로 고정되어 변경 불가능
public class CastEx01 { public static void main(String[] args) { int num = 1; // 변수 final int sum = 10; num = 2; // sum = 20; } }
상수: 변하지 않는 값->변경 불가능 / read only

캐스팅 (=형변환)

💡
double = int 수→ 묵시적 형변환 (=업 캐스팅) ⇒ 자료형의 크기가 큰 자료형에는 들어가는 것이 가능
int = (int) double 수 → 강제적 형변환 (=다운 캐스팅) ⇒ 자료형의 크기가 작은 자료형에는 들어갈 수 없으므로 강제로 넣는 것
package bookEx02; public class TypeConversion { public static void main(String[] args) { int i; double f; f = 1 / 5; System.out.println(f); f = (double) 1 / 5; System.out.println(f); i = (int) 1.7 + (int) 1.8; System.out.println(i); } }
notion image
⇒ 강제적 형변형은 소수점 이하가 사라짐.
 

연산자 (산술, 관계, 논리, 조건)

1. 산술 연산

연산자
기호
덧셈
+
뺄셈
-
곱셈
*
나눗셈
/
나머지
%

2. 관계 연산

기호
의미
==
같은가
!=
다른가
>, <
큰가, 작은가
>=, <=
크거나 같은가, 작거나 같은가

3. 논리 연산

기호
의미
x && y
and 연산, 모두 참
x || y
or 연산, 둘 중 하나 참
!x
not 연산, x가 참이면 거짓, 거짓이면 참
public class ComOperator { public static void main(String[] args) { System.out.print((3 == 4) + " "); System.out.print((3 != 4) + " "); System.out.print((3 > 4) + " "); System.out.print((4 > 3) + " "); System.out.print((3 == 3 && 4 == 7) + " "); System.out.print((3 == 3 || 4 == 7) + " "); } }

4. 조건 연산

absolute_value = ( x > 0 ) ? x: -x;
절대값
max_value = ( x> y ) ? x: y;
최대값
min_value = ( x < y ) ? x: y;
최소값
public class Pizza { public static void main(String[] args) { double area1 = 2 * 3.141592 * 20 * 20; double area2 = 3.141592 * 30 * 30; System.out.println("20cm 피자 면적=" + area1); System.out.println("30cm 피자 면적=" + area2); System.out.println((area1 > area2)? "20cm 두 개": "30cm 한 개"); } }
 

섭씨-화씨 온도 변화

// 1. 화씨온도 -> 섭씨온도 public class FtoC { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("화씨온도를 입력하시오: "); double temp = sc.nextDouble(); double result = (double) 5 / 9 * (temp - 32); System.out.println("섭씨온도는 " + result); } }
// 2. 섭씨온도 -> 화씨온도 import java.util.Scanner; public class CtoF { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("섭씨온도를 입력하시오: "); double temp = sc.nextDouble(); double result = (double) 9 / 5 * temp + 32; System.out.print("화씨온도는 " + result); } }
import java.util.Scanner; public class CorF2 { public static void main(String[] args) { System.out.println("=========================="); System.out.println("1. 화씨->섭씨"); System.out.println("2. 섭씨->화씨"); System.out.println("=========================="); System.out.println(" "); System.out.print("번호를 선택하시오: "); // 1. 화씨 혹은 섭씨를 선택하는 로직 Scanner sc = new Scanner(System.in); int selectedNum = sc.nextInt(); // 2. 화씨 혹은 섭씨온도 받기 System.out.print("온도를 입력하시오: "); double temp = sc.nextDouble(); // 3. 화씨 혹은 섭씨온도를 받아서 변환 double result = selectedNum == 1 ? (5.0 / 9.0 * (temp - 32)) : (9.0 / 5.0 * temp + 32); System.out.println("온도는: " + result); } }
💡
완전한 코딩은 아니지만 배운 내용을 토대로 코딩한 것
 
 
  • OCP (개방 폐쇄 원칙) - 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 하는 원칙 - 확장에 대해서는 개방적 (open), 수정에 대해서는 폐쇄적 (closed)
  • DIP (의존 역전 원칙) - 객체에서 class를 참조해서 사용할 상황에서 그 대상의 상위 요소(추상클래스 or 인터페이스)로 참조하는 원칙

디버깅

  • 디버그를 잡아가는 과정
notion image
notion image
 
Share article

from-web-developer