Java -5

김정현·2024년 4월 16일
0

JAVA

목록 보기
5/19

이차원 배열에서 각각의 length는 각각 열에 길이를 뜻한다.

1차원 -> 직선
2차원 -> 평면
3차원 -> 입체

객체 지향 프로그래밍

  • 클래스란?
    -> 객체를 만들기위한 설계도
class 클래스명 {
	변수정의
    함수정의
 }

참고) 관례적으로 클래스 이름은 카멜식 표기 + 맨앞도 대문자

ex) OrderInfo

클래스의 속성을 구현하는 멤버변수

변수.속성명
변수.함수명(...);

접근해서 값을 할당할 경우 메모리에 배정됨.

new로 설계도(class)를 통해 인스턴스를 생성함.

인스턴스

-실체 실제로 존재한다. (메모리를 할당함)
(생성된 객체)
정의에 불과하던 클래스 명세를 메모리에 실제로 생성된 객체.

인스턴스 == 객체

멤버 변수

-클래스에 정의되어 있는 변수(실제 변수는 아님)

메서드

-클래스에 정의되어 있는 함수

함수 정의하기

반환값 자료형 함수명 (매개변수 ... ) {
	//실행될 코드 정의
    
    return 반환값; 
}

return은 함수 외부에서 사용할때.

  • 반환값이 필요없을 때
-> 
void 함수(){
}

호출

함수명(값,...);
  • 스택 메모리: 임시메모리

함수가 연산을 수행할때만 파라미터를 메모리에 할당, 완료시 제거

스택구조

가장 마지막에 추가한 자료가 먼저 제거됨.

큐구조

먼저 추가한 자료가 먼저 제거됨.

스택 영역 메모리

main: 가장 첫번째로 실행되는 함수 -> 가장 마지막에 해제됨

-> 바닥에 깔린 main함수. 그 후 정의된 함수 실행

힙 영역 메모리

객체전용 메모리

  • 참조 자료형
    클래스형태의 자료형 -> 객체가 되어야 사용 가능

  • 참조 변수
    생성된 객체의 주소값을 가지고 있는 변수

클래스로 생성된 객체를 참조 할 뿐이다.

그렇다고 같은 클래스로 생성된 여러 객체가 모두 같은 주소 값을 갖는것은 아니다.
각각 다른 객체를 생성한 후, 참조함.

s3 = s2 //null 할경우 연결이 끊겨버림. 힙 영역 메모리에서 해제되어버림

이런식으로 얕은 복사를 했다면 동일한 주소값을 가진다.

생성자 함수

기본 생성자 (따로 정의하지 않았을 경우)
public 클래스명(){
}

public Student() {
	//반환값 정의 X, return X -무조건 반환 값은 객체의 주소 값
    //객체 생성 이후에 해야하는 작업들
    //인스턴스 변수의 초기화 작업을 주로 진행
 id = 1000;
 name = "이름1";
}

생성자 함수는 반드시 주소값을 반환값으로 가진다. 변경 불가

매개변수를 통해 다양한 함수 구현이 가능하다.

생성자 오버로드

함수의 이름 - 함수의 시그니쳐

패키지명 + 클래스명 + 반환값 + 함수명 + 매개변수 정의 + 예외 전가 

복합적인 요소를 거쳐 함수의 이름을 구분하게 된다.

함수의 시그니쳐가 동일 -> 함수의 중복 정의 -> 오류
함수의 시그니쳐가 동일X -> 함수명이 같아도 다른 함수를 정의한 것

  • 메서드 오버로드 : 같은 함수명으로 매개변수의 차이를 준다.
 public Student(int _id, String _name, String _subject) { // 기본 생성자(Default 생성자)
        id = _id;
        name = _name;
        subject = _subject;

    }

    public Student() { // 생성자 오버로드 
        int id;
        String name ;
        String subject;

    }

0개의 댓글