1. 메소드(method)
- 어떤 로직이나 기능을 만들어 내는 방법(함수)
- 코드를 재활용 할 수 있도록 하여 경제적으로 코드를 작성할 수 있음
- 객체를 생성하여 참조변수를 통해 호출할 수 있는 함수
*개념설명시 [ ]는 있어도 되고 없어도 되는값
접근제어자 [static] 반환타입 메소드이름([매개변수1, 매개변수2 ..]){
메소드이름이 호출되면 실행할 문장;
...
[return 반환값]
}
// static 이 붙으면 객체생성 필요X , static이 없으면 객체생성해서 사용해야함
public static int sum(int num1, int num2){
int tot = num1 + num2;
return tot;
}
int result = sum(10,5);
- 이름만 호출하면 실행되는 메소드
public void method1(){
System.out.println("Hello Java!");
}
method1();
- 매개변수(parameter)가 있는 메소드
public void method2(int num) {
System.out.println(num);
}
method2(10);
**
스택에 변수를 생성하면 중괄호안에서 생성돼서 중괄호안에서 사라진다
힙에 올라간 값들은 종료될때까지 절대 지워지지 않는다
- 리턴값이 있는 메소드
public int method3(int num){
......
return tot;
}
int result = method3(10);
- 매개변수가 가변적일 때(keyword arguments)
public int method4(int... values){
int sum = 0;
for(int val : values) sum += val;
return sum;
}
문제.
사칙연산을 구하는 메소드를 각각 만들어 아래와 같이 출력하는 프로그램을 작성해보자
(단, 메소드는 각 연산(+, -, *, /)에 따라 별도로 작성. return 키워드를 반드시 사용)
첫번째 숫자를 입력하세요. 10
두번째 숫자를 입력하세요. 3
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.33333
2. main 메소드
-자바 어플리케이션이 실행될 때 가장 먼저 실행되며 프로그램이 구동되는 메소드
-JVM이 자동으로 실행시킴
컴파일후 edit configuration - program arguments 칸에
입력시 main String[] args로 인자값을 받을 수 있다~
3. 객체지향 프로그램(OOP, Object Oriented Programming)
- 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
- 데이터와 절차를 하나의 덩어리(집합)로 묶어서 생각
- 여러명이 하나의 프로젝트를 개발하기 좋음 -> 설계가 힘듬
✔ 절차지향 프로그래밍
- 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시됨
- 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
- 대표적인 언어가 C언어, 가독성이 좋고 여러명이 개발하기 힘듬
✔ 함수형 프로그래밍
- 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할
- 모든 것을 함수로 나누어 문제를 해결하는 기법
- 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이
- 대표적인 언어로는 클로저, 하스켈, 리스프
강아지
- 다리갯수 : 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
✔ 생성자 오버로딩
시그니처가 다른 같은 이름의 메소드를 여러개 만드는 것
getter/setter 자동생성법
우클릭-generate-getter and setter
과제.
현실세계에 있는 Object를 선택하여 클래스로 설계하고 데이터를 입력하여
이를 출력하는 프로그램을 만들어 보자.
(단, 클래스에는 생성자 및 getter/setter 메소드를 포함해야 하며 생성자는 오버로딩되어
여러개를 생성)
반응형
'서버&백엔드 > 🔥 JAVA' 카테고리의 다른 글
Java | 래퍼클래스,static,추상클래스,인터페이스,패키지 (1) | 2022.10.04 |
---|---|
Java | 배열,Object,상속,캐스팅,instanceof (0) | 2022.10.01 |
Java | 배열,String클래스,유용한메소드 (0) | 2022.09.28 |
Java | 반복문,Math,배열 (0) | 2022.09.27 |
Java | 타입변환,Scanner,조건문,반복문 (0) | 2022.09.26 |