생성


1. class {모든 코드는 여기 사이에 작성 필수}
2. 자바에서 파일명을 만들 때 class 이름과 동일해야 함.
java 변수 자료형 (data type)


식별자
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;
}
}
캐스팅 (=형변환)
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);
}
}

⇒ 강제적 형변형은 소수점 이하가 사라짐.
연산자 (산술, 관계, 논리, 조건)
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 인터페이스)로 참조하는 원칙
디버깅
- 디버그를 잡아가는 과정


Share article