Java - Class
JAVA(자바), Python(파이썬) 기반의
AI 활용 응용 소프트웨어 개발자 양성 과정
찾으시는 정보가 있으시다면
주제별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는 영향을 받지 않음
}