/ LECTURE

Java - Class

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

13일차 수업

========복습========

객체지향

if문이랑 for문 정도면 충분히 프로그램의 가독성이나 반복성이 좋았음

프로그램이 거대해지고 흐름이 복잡해지니까 객체지향으로 프로그래밍

객체지향의 시작점이 메소드

메소드 : 진행이 되는 가장 작은 단위

메소드 안의 내용

  • 변수 선언, if for 등 제어문, 출력문 등등

  • 그동안은 main 메소드라는 메소드에서 작업을 했던 것

메소드 선언하기

  • 접근제어자 static 반환타입 메소드이름 (파라미터) { 실행문 }
  • (생략가능) (*특이) ( 생 략 불 가 능 ) (생략가능)
static void minus(){
    메소드 실행부(코드 작성부분)
}
  • 메소드 선언과 동시에 파라미터 변수 생성(선언)
static void minus2(String a, int b){
    System.out.println(a+b);
}

메소드 호출

  • 메소드의 호출은 다른 메소드에서 진행(*특이case: 자기 자신도 포함)

  • 메소드들 중에서 항상 가장먼저 시작되는 main 메소드로부터 일단 호출이 시작

  • 메소드 호출하지 않았다 : if 문에서 거짓 문장에 있는 사용하지 않는 문장 같음

  • 인자

    • 메소드 이름(인자);

    • 호출 하는 메소드(main)에서 호출된 메소드(minus)로 전달하는 값

    • 인자 : 메소드 정의할 때 매개변수가 있다면 필수 작성

  • 파라미터(매개변수)

    • 호출이 돼서 메소드가 시작될 때 그 안에서 사용할 값

    • 바로 사용을 해야하기 때문에 자료형과 변수명을 미리 작성

인자와 파라미터는 서로 연결된 사이

  • 파라미터와 인자는 개수, 자료형, 순서 가 동일해야한다

======== 끝 ========

13일차 수업

클래스

java 코드를 구성하는 큰 틀 .java 파일에 작성된 하나의 설계도

“객체”를 정의하는 틀(필드와 메소드를 정의)

클래스명 규칙 : 첫글자 대문자로 작성

  • 필드

    • 지역변수보다 넓은 사용범위의 변수, 해당 클래스 내의 메소드들에서 사용가능
  • 메소드

    • 클래스의 기능 정의
  • 예시

    과자틀 : 클래스

    과자틀로 인해서 나오는 과자 : 객체

    • this : 클래스에 의해서 새로 만들어진 객체를 뜻함

    클래스 : 객체를 만들기 위한 하나의 설계도, 단위(*new)

    클래스 필드 : 객체의 상태를 표현한다 : 포함된 변수 의미

    클래스 메소드 : 객체의 행동을 표현한다 : 포함된 메소드 의미

인스턴스

  • 프로그램에 new가 많다는건 인스턴스가 많다는 뜻, 컴퓨터의 부하가 오기 쉬움

  • 참조변수를 매개변수로 메소드에 보낼 수도 있음

Calc ref1 = new setOp();
Calc ref2 = ref1;
  • 하나의 인스턴스를 두 개의 변수가 공유하는 상황,
  • 참조변수에는 인스턴스에 대한 주소값이 저장됨, 결국 같은 인스턴스인 상황

  • 예시

    • 클래스 생성 “Calc.java” 파일 생성 - 단독 실행 목적이 아닐 경우 main 메소드 필요없음
public class Calc {
    int fir;                        => 필드(인스턴스 변수) 선언
    void setOp(int a, int b){		=> 메소드(기능에 대한 부분)
        fir = a;
    }
}
  • 인스턴스 생성
    • 다른 클래스 혹은 파일에서
public static void main(String[] args) {
    Calc c1 = new Calc();		=> 인스턴스 생성, 참조변수 선언
    c1.setOp(1,2);				=> 참조변수 통해 메소드 호출
    Calc c2 = new Calc();		=> 새로운 인스턴스 생성
    c2.setOp(2,3);				=> c1과 c2는 영향을 받지 않음
}