회고록/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);
    }
}