메서드
- 함수의 일종
- 객체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수
함수란
- 하나의 기능을 수행하는 일련의 코드
- 중복되는 기능은 함수로 구현하여 함수를 호출하여 사용함
함수 정의 하기
- 함수를 코드로 구현
- 함수의 이름, 매개변수, 반환 값을 선언하고 코드를 구현함
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으로 선언한 경우
정보 은닉(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 |