Java 6일차

소윤정·2021년 5월 29일
0

JAVA

목록 보기
5/15

하루에 8시간 자바 수업듣고 SQLD랑 같이 병행하면서 velog 정리까지 하려니 정신이 없어서 밀린 날짜대로 글을 다시 작성해보려한다. 고작 이틀밀렸지만 이제부터 다시 (정처기 준비하기전까지) 열심히 작성해보려한다. 그럼 6일차 배운 내용을 적어보겠다!

main 메소드

  • 자바 어플리케이션이 실행될때 가장 먼저 실행되며 프로그램이 구동되는 메소드
  • String[] args는 매개변수로 동작

main 메소드로 매개변수 보내기

  1. cmd : 파일명 매개변수1 매개변수2..
    java Main1 apple banana orange
  2. 인텔리제이 : Edit Configurations → Program arguments → 매개변수1 매개변수2...

향상된 for문

for(자료형 변수 : 배열) {
	배열의 요소만큼 반복할 문장;
    ...
 }
 
 // 예제1
 for(String s : args){
 	System.out.println(s);
 }

메소드

  • 어떤 로직이나 기능을 만들어내는 방법
  • 코드를 재활용 할 수 있도록 하여 경제적으로 코드를 작성할 수 있음

실행 문장

접근제어자 [static] 반환타입 메소드명(매개변수1, 매개변수2...){
	메소드가 호출되면 실행될 문장;
    ...
    [return 반환값;]
 }

예제

// static가 없는 메소드
Scanner sc = new Scanner(System.in);
sc.next()

// static가 있는 메소드
Math.random();
  1. 매개변수가 없고, 리턴값도 없는 메소드
public static void method1(){
        System.out.println("Hello Java!");
    }

method1();
  1. 매개변수가 있고, 리턴값도 없는 메소드
public static void method1(int num){
	System.out.println(num);
}
method1(10);
  1. 매개변수가 있고, 리턴값이 있는 메소드(❗️ 헷갈림 주의 ❗️)
public static int method1(int num){
	return num;
}
method1(10);

Q. 1~3번 중 가장 많이 사용되는 메소드는?
A. 3번
- 이유는? 1,2번은 출력범위가 제한되어 있다.

연습문제

import java.util.Scanner;

/*
    문제) 사칙연산을 구하는 메소드를 만들어서 아래와 같이 출력하는 프로그램을 만들어보시오.
    (단, 메소드는 각 연산마다 별도로 작성하고 return 키워드를 사용)

    첫번째 숫자를 입력하세요. 10
    두번째 숫자를 입력하세요. 3
    10 + 3 = 13
    10 - 3 = 7
    10 * 3 = 30
    10 / 3 = 3
 */
public class Method4 {
    public static int Plus(int num1, int num2){ // 더하기
        return num1 + num2;
    }

    public static int Minus(int num1, int num2){ // 빼기
        return num1 - num2;
    }

    public static int Multi(int num1, int num2){ // 곱하기
        return num1 * num2;
    }

    public static int divi(int num1, int num2){ // 나누기
        return num1 / num2;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("첫번째 숫자를 입력하세요 : ");
        int num1 = sc.nextInt();
        System.out.print("두번째 숫자를 입력하세요 : ");
        int num2 = sc.nextInt();

        int Plus1 = Plus(num1, num2);
        System.out.println(num1 + " + " + num2 + " = " + Plus1);

        int Minus1 = Minus(num1, num2);
        System.out.println(num1 + " - " + num2 + " = " + Minus1);

        int Multi1 = Multi(num1, num2);
        System.out.println(num1 + " * " + num2 + " = " + Multi1);

        int divi1 = divi(num1, num2);
        System.out.println(num1 + " / " + num2 + " = " + divi1);

    }
}

객체지향 프로그래밍 VS 절차지향 프로그래밍

  1. 객체지향 프로그래밍

    • 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
    • 데이터와 절차를 하나의 덩어리(집합)로 묶어 있다고 생각하면 된다.

    장점

    • 여러명이 하나의 프로젝트를 개발하기 좋다.

    단점

    • 설계가 힘들다.

  1. 절차지향 프로그래밍

    • 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그램 기법(C언어)
    • 가독성이 좋다.

클래스(Class)(난이도🔥🔥🔥 )

  • 객체를 정의하는 설계도와 같은 의미
  • 객체의 상태를 저장하는 필드와 객체의 행동을 나타내는 메소드로 구성
  • 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다.
  • new는 클래스로부터 객체를 생성시키는 연산자
    - new 연산자로 생성된 객체는 메모리 힙(heap) 영역에 생성
    - 힙 영역에 객체를 생성시킨 후, 객체의 주소를 리턴하도록 되어 있다.

객체를 생성하는 방법

클래스명 객체명 = new 생성자();

User user = new User();

OOP(Object Oriented Programming) → 객체지향 프로그래밍

  • 은닉화
    - 내부 데이터, 내부 연산을 외부에 접근하지 못하도록 은닉 혹은 격리시키는 것
    • 변수에 접근 제한자를 private로 지정
    • setter, getter 메소드를 사용하여 변수의 접근, 제어함.
      • setter : 값을 생성할 때 사용
      • getter : 값을 읽어올때 사용
        ⇒ 마우스 오른쪽 생성 → getter 및 setter → 선택하고 확인 누르면 한꺼번에 만들 수 있음

배운점

이제부터 본격적인 객체지향 프로그래밍에 대해 배우기 시작하니 정확하게 클래스에 사용법에 대해 익혀야 다음 배우는 것을 이해하고 넘어갈 수 있으니까 여기부터는 정신 똑바로 차리고 수업을 들어야 할것같다..ㅠㅡㅠ

0개의 댓글

관련 채용 정보