[Java]Object : 객체

leewg97·2022년 6월 3일
0

Java

목록 보기
4/14
post-thumbnail

객체(Object)

  • 절차 지향 프로그램 : 대표적으로 C언어(시간의 흐름에 따른 프로그래밍)
  • 객체 지향 프로그램 : 각 객체가 제공하는 기능들 간의 소통을 통해 협력 구현
  • Function(함수) : 하나의 기능을 수행하는 코드
    • 호출하여 사용하고 기능이 끝나면 반환
    • 수행만하고 반환하지 않는 함수도 존재 : void
  • class를 기반으로 여러개의 인스턴스가 생길 수 있음

Class

  • Object를 추상화 하여 source 형태의 파일로 만든 것을 말함

  • 멤버 변수 = 글로벌 변수, 전역 변수라고도 함 (객체의 명사적 특징)

  • 메소드 : 객체의 동사적 특징이 변환된 것

  • 로컬 변수 = 메소드 안에 선언

  • class로부터 메모리 상의 객체를 생성 한 것이 인스턴스

  • 클래스를 만들 때는 목적과 관점에 따라서 구조가 달라진다

  • 클래스의 이름은 대문자로 시작

  • 생성자나 메소드는 모두 멤버변수를 위해 존재

  • → 멤버변수만 유일하게 객체에 포함되는 요소임

  • String class를 쭉 이어쓰는 방법

    • Buffer를 갖고 있는 클래스에 String연결하고 return
      • 많이 쓰이는건 String Buffer와 String Builder
    • .append로 연결이 가능하다

생성자

  • Heap memory : instance가 생성되는 곳
  • 이름은 클래스 이름과 동일
  • 객체의 멤버변수 초기화(변수에 최초로 값이 할당 되는 것)를 담당
    • 참조 값 : Heap에 인스턴스가 위치하는 주소
    • stack memory : 지역 변수
    • ex) Student studentLee(인스턴스) = new Student(생성자)( );
    • 참조 값 : referance value / 참조 변수 : referance variable
  • 호출되는 시점 : 클래스로부터 인스턴스를 생성할 때
    • Ex) 생성자 메소드 호출 : New Student( ) → Student( )가 생성자(메소드)
  • 생성자 기본 문법([<argument_list]){[<statements]}
  • new 키워드와 함께 사용한다.(참조변수를 통해 호출하지 않음)
  • 반환 값이 없고, 생성자 이름은 클래스 이름과 동일하다.
  • 기본 생성자(default constructor) : 매개변수가 비어있는 생성자
    1. 클래스에는 적어도 하나 이상의 생성자가 존재해야 한다.
    2. 생성자를 만들지 않으면 컴파일러가 매개변수와 구현부가 없는 디폴티 생성자를 만들어 준다.
  • Eclipse에서 멤버변수는 파란색으로 표시된다.
  • 멤버변수는 만들어지면 자동으로 초기화가 된다.
    • 멤버변수에 값을 대입하고 싶을 때
      • this.멤버변수로 대입할 수 있다.
      • 변수이름은 대부분 같게 설정한다
  • 생성자 앞에 void가 붙으면 그냥 메소드가 됨.

-——————This——————-

멤버변수와 매개변수 이름이 같을 때

this.멤버변수 = 매개변수 로 값을 할당한다.

-—————This( )——————-

같은 클래스 내에서 또다른 생성자를 호출하는 것이 가능하다.

메소드(=Function)

  • 이름이 있고 뒤에 ( )가 있음. → ( )는 외부로부터 data를 받아들이는 통로이고 ( )안에 들어가는 변수는 매개변수임
  • 이름은 30글자만 넘어가지 않으면 된다. 기능의 유추가 가능해야 하기 때문
  • 외부로 부터 값을 받는 것 ⇒ 매개변수(적을수록 좋음)
  • 리턴되는 data ⇒ return type
  • 아무것도 return하지 않으려면 void를 사용하면 됨.
  • return하는 메소드 → 메소드를 호출한 쪽에서 리턴 값을 받아옴
  • 메소드 안에서 선언 된 로컬변수나 매개 변수로 받은 로컬변수는 기능을 다하면 사라진다.
  • But, 멤버변수는 사라지지 않는다.

객체 생성 & 사용

  • 객체의 생성 → 기본 초기화 →int = 0 / String = null / double = 0.0 → 값 할당[참조변수.( )=( );]
  • 객체의 사용 : 클래스이름 참조변수 = new 생성자( );
    • Ex) Student studentLee = new Student();
  • 참조변수 : 객체의 주소 정보를 복사하는 것
  • public은 외부에 공개 가능한 정보, private는 그렇지 않은 정보
    • 같은 패키지의 클래스는 default 및 public 접근 가능하지만 private는 접근할 수 없다. 하지만 같은 class 내에서는 private에 접근 가능하고, private에 접근하려면 공개된 public 메소드를 통해 간접적으로 접근이 가능하다.
    • Ex) 비밀번호를 받은 후 → If(맞으면 통과/그렇지 않으면 통과X)
  • Package(패키지)
    • 이름 : 대문자 사용가능하나 관례상 사용하지 않는다.
    • 다른 패키지의 내용을 사용하고 싶으면
      1. 다른 패키지의 경로 ( 참조변수 ) = new 다른 패키지의 경로 ( );
      2. import를 사용
      3. default의 경우 같은 패키지 내의 class만 접근 가능함.
profile
little by little slowly

0개의 댓글