회고록/Java dataStructure&Algorithm
JAVA 기본(함수,입력출력(Scanner),반복문(for,while), 조건문(if,switch), OOP(객채지향)).
sehunbang
2024. 1. 3. 21:02

기본 함수
int number; // number 라는 이름의 int(숫자)타입의 저장공간을 선언
String name; // name 이라는 이름의 String(문자열)타입의 저장공간을 선언
char alphabet = 'A'; // alphabet 이라는 문자 하나를 저장합니다.
byte byteNumber = 127; // byte 는 -128 ~ 127 범위의 숫자만 저장 가능합니다.
short shortNumber = 32767; // short 는 -32,768~32,767 범위의 숫자만 저장 가능합니다.
int intNumber = 2147483647; // int 는 -21억~21억 범위의 숫자만 저장 가능합니다.
long longNumber = 2147483647L; // long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰수를 저장 가능합니다.
float floatNumber = 7.0f; // float 은 숫자뒤에 알파벳 f 을 붙여서 표기하며 소수점을 표기 합니다
double doubleNumber = 12.12312; // double 은 매우 긴 소수점을 표기 합니다 ( 알파벳 d 을 붙여서 표기해도됨 )
// 조건문 생략 으로 함수에 값넣기
String a = "aaa";
String b = "aaa";
int c = a.equals(b) ? 1 : 0;
함수 타입 변경
// 기존 함수 바이트 사이즈 보다 높은 함수로 옴길때는
int a = 7;
float a_f = a;
// 사이즈가 낮은 함수로 옴길때는 앞에 (타입) 넣어 줘야함
float b_f = 7.0f;
int b = (int)b_f;
//string 을 int 로 옴길때
String c_s = "123";
int c = Integer.parseInt(c_s);
입력출력
import java.util.Scanner; // 입력한 글자를 출력합니다.
// class 안에는
Scanner sc = new Scanner(System.in);
String input = sc.next();
System.out.println("입력값 : " + input); // 입력한 글자를 출력합니다.
반복문
while 예제
int number = 0;
while (number < 3) { // while 안엔는 boolean 타입으로 false 가 될대 까지 혹은 break; 가 있을경우에만
number++;
System.out.println(number + "출력");
}
for 예
for(int i = 0; i < 10; i++){
System.out.println("반복횟수 : "+i);
}
조건문
if 예
// 조건문 with else if
int number = 2;
if (number == 1) { // number 가 1 일 경우
System.out.println("number 값은 1 입니다.");
}
else if (number == 2) { // 2 일 경우에는
System.out.println("number 값은 2 입니다."); // number 값은 2 입니다. 출력
}
else { // if 나 else if 들 에 맞는 조건이 없을시.
System.out.println("number 값은 모르는 값입니다."); // 미출력
}
Switch 예 (else if 대신 case 그리고 else 대신 default.)
int month = 8;
String monthString = "";
switch (month) {
case 1: monthString = "1월";
break;
case 2: monthString = "2월";
break;
case 3: monthString = "3월";
break;
case 4: monthString = "4월";
break;
case 5: monthString = "5월";
break;
case 6: monthString = "6월";
break;
case 7: monthString = "7월";
break;
case 8: monthString = "8월";
break;
case 9: monthString = "9월";
break;
case 10: monthString = "10월";
break;
case 11: monthString = "11월";
break;
case 12: monthString = "12월";
break;
default: monthString = "알수 없음";
}
System.out.println(monthString);
객채지향 (oop) Object-oriented programming
캡슐화 (Encapsulation): 데이터와 그를 처리하는 메서드를 하나의 단위로 묶어 클래스를 생성하고, 외부에는 필요한 부분만 노출하여 정보를 은닉합니다. 이를 통해 객체의 내부 구현을 보호하고 모듈화를 가능하게 합니다.
상속 (Inheritance): 이미 존재하는 클래스에서 속성과 메서드를 상속받아 새로운 클래스를 만들 수 있습니다. 이로써 코드의 재사용성을 높이고, 계층 구조를 통해 코드의 구조를 단순화합니다.
다형성 (Polymorphism): 동일한 이름의 메서드가 여러 객체에서 다르게 동작하도록 하는 개념으로, 오버로딩과 오버라이딩을 통해 구현됩니다.
추상화 (Abstraction): 복잡한 현실 세계를 단순화하여 핵심적인 부분에 집중할 수 있도록 하는 프로세스입니다. 클래스와 인터페이스를 통해 구현되며, 프로그래머가 필요한 부분에 집중할 수 있도록 도와줍니다.
간단한
public class Calculators {
private int firstNumber;
private int secondNumber;
private AbstractOperation operation;
public Calculators(AbstractOperation operation) {
this.operation = operation;
}
public Calculators() {
}
public void setFirstNumber(int firstNumber) {
this.firstNumber = firstNumber;
}
...........more public functions..............etc
}
메인 클래스에선 저 클래스(오브젝트를) 래퍼 클래서 처럼 만들고 안에 있는 public 함수들을 상용할수 있다 (e.g getter/setter).
public class main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setFirstNumber(1);
}
}