[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 4일차

2024. 12. 5. 16:43·🏕 멋사 Java 백엔드 13기/TIL

call by reference

public class exam1 {
    public static void main (String[] args){

        int i = 10;
        int j = i;

        i += 10;

        System.out.println("i:"+i);
        System.out.println("j:"+j);


        int[] iarr = {10};
        int[] iarr2 = iarr;

        iarr[0] += 10;

        System.out.println("iarr:"+iarr[0]);
        System.out.println("iarr2:"+iarr2[0]);
    }
}
i:20
j:10
iarr:20
iarr2:20

 

i, j의 경우 j는 i의 원시값을 복사한 것이기 때문에 i값이 변경되어도 j가 변경되지 않음 

배열은 주소를 지정하기 때문에 iarr[0]의 값이 바뀌면 iarr2의 값도 변경됨

 

명령 행 아규먼트(Command-Line Arguments)

JVM이 main 메소드를 실행할 때 Stirng[]을 Arguments로 넘겨준다는 것을 의미한다.

public class Exam2 {

    public static void main(String[] args) {
        //java Exam2 10 hi kang 111
        System.out.println(args.length);

        if(args.length == 0){
            System.out.println("사용법:: ");
            System.exit(0);
        }
        for(String arg:args){
            System.out.println(arg);
        }
    }
}

Unlimited arguments

메소드 아규먼트를 가변적으로 전달하고 싶을 때 사용한다. 

리턴타입 메소드이름(타입... 변수명) { 구현부 }
public class Exam3 {

    //제한 없는 아규먼트 사용
    public static int addInt(int... values) {
        int sum = 0;
        for (int value : values) {
            sum += value;
        }
        return sum;
    }


    public static void main(String[] args) {
        int result = addInt(4,5,66,78,56);
        System.out.println(result);
    }
}

 

 

객체지향 프로그래밍

프로그래밍을 여러 개의 독립된 단위(객체)들의 모임으로 파악하고자 하는 것으로, 각각의 객체는 메세지를 주고 받으며 데이터를 처리할 수 있다.

 

메소드

객체가 수행할 수 있는 동작을 정의한다.

1. 입력값도 없고, 리턴값도 없는 메소드 
접근 제한자 void 메서드명() {구현부}

2. 입력을 받아서 실행하는 메서드 
접근제한자 void 메서드명 (매개변수...){구현부}

3.실행해서 결과를 리턴하는 메소드
접근제한자 리턴타입 메소드명() {구현부}

4.입력을 받아서 실행하고 리턴해주는 메소드
접근제한자 리턴타입 메소드명 (매개 변수들...) {구현부}

 

 

class Pen{

    private String name;

    public void Write(String msg){
        System.out.println(msg);
    }
}

public class Exam4 {

    public static void main(Stringp[] args){
        // class Pen은 설계도, 틀
        // class를 이용해 실체(진짜 펜)을 만들어야 함.

        Pen p = new Pen(); // new 실체를 만든다. 이때 만들어진 실체를 인스턴스, p를 참조형 변수라고 한다.

        //p 레퍼런스(참조형)변수 int[] iarr - iarr 레퍼런스 변수

        int i = 0 ; // int를 담을 수 있는 변수 1 선언, int값 0 넣어줌
        //Pen p == pen을 가리킬 수 있는 변수 p를 선언.

        p.Write("안녕!!");

    }
}

 

예시 1) 주사위 굴리기

public class Dice {
    //속성 면, 눈
    public Dice() {
        System.out.println("Dice의 기본 생성자 실행!");
    }

    int face;
    int eye;


    // 행위 : 굴리다

    public void roll(){
        //주사위 굴렸을 때 랜덤하게 나온다.
//        Random random = new Random();
//        random.nextInt();
        eye = (int)(Math.random()*face)+1;

    }
}
public class DiceUser {

    public static void main(String[] args) {
        Dice dice = new Dice();
        dice.face =6;

        dice.roll();

        System.out.println(dice.eye);
    }
}

 

 

예시 2) 계산기

public class Calculate {
        public int add(int i, int j) {
            return i + j;
        }

        public int sub(int i, int j) {
            return i - j;
        }
        public int mul(int i, int j) {
            return  i * j;
        }
        public double div(int i, int j) {
            if (j == 0) {
                System.out.println("나눌 수 없습니다.");
                return 0;
            }else 
            return  i / j;
        }
    }
import java.util.Scanner;
public class CalculUser {
    public static void main(String[] args) {
    
        Scanner scanner = new Scanner(System.in);
        Calculate cal = new Calculate();

        System.out.print("첫 번째 수를 입력하세요.:");
        int num1 = scanner.nextInt();

        System.out.print("두 번째 수를 입력하세요.:");
        int num2 = scanner.nextInt();

        System.out.println("원하는 계산 모드를 선택하세요.");
        System.out.println("1. + 2.- 3.* 4./");

        int operation = scanner.nextInt();
        switch (operation) {
            case 1:
                System.out.println("결과: " + cal.add(num1, num2));
                break;
            case 2:
                System.out.println("결과: " + cal.sub(num1, num2));
                break;
            case 3:
                System.out.println("결과: " + cal.mul(num1, num2));
                break;
            case 4:
                System.out.println("결과: " + cal.div(num1, num2));
                break;
            default:
                System.out.println("다시 선택하세요.");
                break;
        }
    }
}

 

 

어제 헷갈렸던 부분을 나름대로 해석한 결과 >

  	public static void main(String[] args) {
        ItemForArray[] itemArr;  // ItemForArray 클래스의 객체 배열인 itemArr을 선언
        itemArr = new ItemForArray[3]; //3개의 ItemForArray 객체를 담을 수 있는 공간 확보, 메모리에 배열 생성

		//ItemForArray 클래스의 생성자를 호출해 객체 생성  
        ItemForArray item1 = new ItemForArray(3000, "연필");
        ItemForArray item2 = new ItemForArray(5000, "컵");
        ItemForArray item3 = new ItemForArray(10000, "공책");
        
        //객체를 배열에 저장
        itemArr[0] = item1;
		itemArr[1] = item2;
		itemArr[2] = item3;

 

'🏕 멋사 Java 백엔드 13기 > TIL' 카테고리의 다른 글

[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 8일차  (1) 2024.12.11
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 6일차  (2) 2024.12.09
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 3일차  (1) 2024.12.04
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 2일차  (0) 2024.12.03
[Java] 패키지, 접근 제한자, 클래스, 메소드  (3) 2024.12.03
'🏕 멋사 Java 백엔드 13기/TIL' 카테고리의 다른 글
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 8일차
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 6일차
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 3일차
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 2일차
Cofish
Cofish
  • Cofish
    Codesea
    Cofish
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🏕 멋사 Java 백엔드 13기 (17)
        • TIL (15)
        • 자료구조 (2)
      • 네트워크 (2)
        • TCP•IP (2)
      • 🎨 블로그 꾸미기 (0)
      • 💬 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    멋쟁이 사자처럼
    MySQL
    백엔드 java 부트캠프
    멋쟁이사자처럼 #부트캠프
    java 기초
    db 기초
    부트캠프
    디자인 패턴
    #멋쟁이 사자처럼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Cofish
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 4일차
상단으로

티스토리툴바