1. 메소드(method)
- 어떤 로직이나 기능을 만들어 내는 방법(함수)
- 코드를 재활용 할 수 있도록 하여 경제적으로 코드를 작성할 수 있음
- 객체를 생성하여 참조변수를 통해 호출할 수 있는 함수
접근제어자 [static] 변환타입 메소드이름([매개변수1, 매개변수2..]) { //매개변수 : 원하는 값을 넣을 수 있다.
// 반환타입이 없을 경우 void를 사용한다.
메소드이름이 호출되면 실행할 문장;
...
[return 반환값] // 내가 원하는 값을 돌려준다. 메소드 호출한곳으로
// 반환값은 반환타입과 동일하게 사용한다.
}
// static : 객체를 생성하지 않아도 코드가 실행되면 메모리에 적재된다
public static int sum(int num1, int num2){
int tot = num1 + num2;
return tot;
}
//int result = sum(10, 5)를 호출하면 15가 된다.
//호출 -> 동일한 메소드에서 호출 시 return 값을 반환한다.
int num = 메소드이름();

- 이름만 호출하면 실행되는 메소드 - 매개변수가 없다.
public void method1(){
System.out.println("Hello World");
}
method1();
- 매개변수(parameter)가 있는 메소드
public void method2(int num){
System.out.println(num);
}
method2(10);
- return값이 있는 메소드
public int method3(int num){
......
return tot; // return을 쓰는이유 :
}
int result = method(10);//return값이 결과적으로 result로 들어간다.
//heap에 기록된 것은 종료시까지 지우지 못하고 method내에 있는 stack은 종료시 초기화된다.

- 매개변수가 가변적일 때(keyword arguments)
public int mehtod4(int... values){
int sum =0;
for(int val : values) sum+=val;
return sum;
}

문제.
사칙연산을 구하는 메소드를 각각 만들어 아래와 같이 출력하는 프로그램을 작성해보자.
(단, 메소드는 각 연산(+,=,*,/)에 따하 별고로 작성. return 키워드를 반그시 사용)
첫 번째 숫자를 입력 : 10
두 번째 숫자를 입력 : 3

2. main 메소드
- 자바 어플리케이션이 실행될 때 가장 먼저 실행되며 프로그램이 구동되는 메소드
- JVM이 자동으로 실행시킴
✨✨✨
3. 객체지향 프로그래밍(OOP, Object Oriented Programming)
- 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
- 데이터와 절차를 하나의 덩어리(집합)로 묶어서 생각
- 여러명이 하나의 프로젝트를 개발하기 좋음 -> 설계가 힘듬
✔ 절차지향 프로그래밍
- 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 됨
- 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
- 대표적인 언어가 C언어, 가독성이 좋고 여러명이 개발하기 힘듬
✔ 함수형 프로그래밍
- 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할
- 모든 것을 함수로 나누어 문제를 해결하는 기법
- 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이
- 대표적인 언어로는 클로저, 하스켈, 리스프
강아지 - 동사 : method 명사 : 필드(변수)
- 다리갯수 : 4
- 색상 : 흰색
- 이름 : 루시
- 몸무게 : 3kg
- 종 : 포메
- 먹는다, 뛴다, 논다, 잔다......
// 클래스내에는 메소드와 필드(변수/명사)가 들어가 구성한다. 설계도와 같은 역할


4. 클래스(class)
- 설계도와 같은 의미
- 객체의 상태를 저장 필드(변수)와 객체의 행동을 나타내는 메소드(함수)로 구성
✔ 객체(Object) - 메모리에 실체화 되고 쓸 수 있으면 객체
- 소프트웨어 세계에 구현할 대상
- 클래스에 선언된 모양 그대로 메모리에 생성된 실체
✔ 인스턴스{Instance)(복제된) - 구체적으로 표현할 수 있으면 인스턴스, 객체에 포함된 용어이며 쓸 수 있다.
- 설게도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
- 객체를 소프트웨어 실체화 하면 그것을 인스턴스라고 부름(실체화된 인스턴스는 메모리에 할당)
- 인스턴스 객체에 포함되는 개념
"객체는 클래스의 인스턴스다!"
클래스(파일) -------> new 연산자 --------> 객체, 인스턴스(메모리)

5. 클래스를 만드는 방법
접근제어자 class 클래스이름 {
자료형 필드명1; //변수
자료형 필드명2 = 값; //변수
......
접근제어자 [static] 반환형 메소드이름(){// 함수 -> 메소드
}
...
}
클래스명 참조변수 = new 생성자();//클래스의 인스턴스가 만들어지고 메모리에 올라간다.

6. 생성자(Constructor)
- new 연산자를 통해 객체를 생성할 때 반드시 호출되는 메서드
- 객체를 생성할 때 제일 먼저 실행되는 메서드
- 필드를 초기화 하는 역할
- 반환타입이 없음
- 직접 생성하지 않으면 JVM이 자동으로 빈 생성자를 만들어 호출
[접근제어자] 클래스명([매개변수1, 매개변수2....]){
생성자가 호출되면 실행할 문장;
....
}
✔ this 연산자
현재 클래스내에 존재하는 필드를 가리킴
✔ this 메소드
현재 클래스내에 존재하는 메
✔ 필드의 선언 초기값
byte : 0
short : 0
int : 0
long : 0
char : \u0000
float : 0.0
double : 0.0
boolean : false
String, 배열 ,클래스, 인터페이스 : null
생성자 오버로딩
시그니처가 다른 같은 이름의 메소드를 여러개 만드는 것
과제.
현실세계에 있는 Object를 선택하여 클래스로 설계하고 데이터를 입력하여
이를 출력하는 프로그램을 만들어보자.
(단, 클래스에는 생성자 및 getter/setter 메소드를 포함해야 하며 생성자는 오버로딩되어 여러개를 생성)


'Java > Java' 카테고리의 다른 글
국비지원 자바 복습 8(래퍼, 추상 클래스, 인터페이스, static) (1) | 2022.10.05 |
---|---|
국비지원 자바 복습 7 (객체의 배열, Object, 상속, 업/다운 캐스팅) (1) | 2022.10.04 |
국비지원 자바 복습 5 (2차원 배열, String 클래스, 주민등록 검증) (1) | 2022.10.04 |
국비지원 자바 복습 4 (반복 문, 배열) (1) | 2022.10.04 |
국비지원 자바 3(타입변환, 제어 문, 성적프로그램) (1) | 2022.10.04 |