자바

[JAVA] 클래스와 객체 1

코딩하는둥이 2022. 11. 19. 02:13

메서드

 - 함수의 일종

 - 객체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수

 

함수란

 - 하나의 기능을 수행하는 일련의 코드

  - 중복되는 기능은 함수로 구현하여 함수를 호출하여 사용함

 

함수 정의 하기

 - 함수를 코드로 구현

 - 함수의 이름, 매개변수, 반환 값을 선언하고 코드를 구현함

 

int add (int num1, int num2){

   int result;

   result = num1 + num2;

  return result;

}

add 함수이름: 함수의 기능과 관련하여 명명

int num1, int num2 매개변수:  함수의 수행을 위해 필요한 변수

return : 함수 수행 결과를 반환하기 위한 예약어

int 함수 반환형: 반환 값의 자료형을 나타냄, 반환 값이 없는 경우 void라고 씀

 

함수의 스택 메모리

 - 함수가 호출될 때 사용하는 메모리 - 스택(stack)

 - 함수의 기능 수행이 끝나면 자동으로 반환되는 메모리

 

클래스에서 매서드 구현하기

 - 클래스의 메서드는 멤버 변수를 사용하여 기능 구현 학생의 이름을 반환하는 매서드

 

package classpart;

public class Student{
	int studentID;
	String studentName;
	int grade;
	String address;
	
	public String getStudentName(){
	    return studentName;
		}
	public void showStudentInfor(){
	    System.out.println(studentName + "," + address);
	}
	public void setStudentName(String name){
	    studentName = name;
	}
}

 

클래스(static코드) ------생성(인스턴스 화)------> 인스턴스 (dynamic memory)

 

클래스 생성하기

 - 클래스를 사용하기 위해서는 클래스를 생성하여야 함

 - new 예약어를 이용하여 클래스 생성

 - 클래스형 변수이름 = new 생성자;

  Student studentA = new Student();

 

 

인스턴스와 힙(heap) 메모리

 - 하나의 클래스 코드로부터 여러 개의 인스턴스를 생성

 - 인스턴스는 힙(heap) 메오미에 생성됨

 - 각각의 인스턴스는 다른 메모리에 다른 값을 가짐

 

생성자(constructor)

 - 인스턴스 생성 시 new 키워드와 함께 사용했던 생성자

- 생성자는 인스턴스를 초기화할 때 명령어 집합

 - 생성자의 이름은 그 클래스의 이름과 같음

 - 생성자는 메서드가 아님, 상속되지 않으며, 리턴 값이 없음

 - 생성자 기본 문법

 <modigiers><class_name>(<argument_list>])

{

         [<statements>]

}

package constructor;

public class Person{
    String name;
    float height;
    float weight;
}

package constructor;

public class PersonTest{
    public static void main(String[] args){
        Person personLee = new Preson();  //Preson(); 생성자 
    }
}

생성자 오버로드 (constructor overload)

 - 필요에 의해 생성자 추가 하는 경우 여러 개의 생성자가 하나의 클래스에 있음( overload)

package constructor;

public class Person{
    String name;
    float height;
    float weight;
}

public Person() {} // 디폴트 생성자

public Person(String pname) {
    name = pname;
    
}
public Person(String pname, float pheight, float pweight){ // 이름, 키, 몸무게 매개변수로 입력받는 생성자
    name = pname;
    height = pheight;
    weight = pweight;
       
    }
}

참조자료형 (reference data type)

 - 변수의 자료형 

 1) 기본 자료형

      - int, long, float, double

 2) 참조 자료형

     - String, Date, Student

 클래스 형으로 선언하는 자료형

 

참조 자료형의 예

 - 학생의 속성 중 수업에 대한 부분

 - 수업에 대한 각 속성을 학생 클래스에 정의하지 않고 수업이라는 클래스로 분리해서 사용

  - 이때 과목은 참조 자료형으로 선언

정보 은닉의 예

 - public으로 선언한 경우 

2월 31일이 존재하지 않는데 오류를 막을 수 없음

정보 은닉(information hiding)

 - private 접근 제어자

    : 클래스의 외부에서 클래스 내부의 멤버 변수나 메서드에 접근(access) 하지 못하게 하는 경우 사용 

    : 멤버 변수나 메서드를 외부에서 사용하지 못하도록 하여 오류를 줄일 수 있음

     : 변수에 대해서는 필요한 경우 get(), set() 메서드를 제공

'자바' 카테고리의 다른 글

[JAVA] 백준 기초공부 2  (0) 2022.11.19
[JAVA] 클래스와 객체2  (0) 2022.11.19
[JAVA] 객체와 클래스  (0) 2022.11.19
[JAVA] 반복문  (0) 2022.11.18
[JAVA] 조건문  (0) 2022.11.14