- 메소드
- 리턴
함수만 잘 만들어도 밥 벌어먹고살 수 있다.
< 함수 써야 할 때>
똑같은 기능(소스)이 두 번 이상 들어갈 때.
걍 무조건 함수는 만들어놓으면 놓을수록 좋다. 언젠간 쓸 수 있으니까.
하나의 함수는 되도록이면 하나의 기능만 하도록 만들어야 한다.
하나의 함수에 두 개의 기능이 들어가면 두개의 함수를 만든다.
모든 프로그램은 main 가짐
객체지향 언어에서 매우 중요
public static void main(String[] args) 단어 하나하나 뜻 알아야 함
------------------------- main함수
무조건 함수는 (뭐가오든지간에)에서 찾는다. 함수이름은 무조건()앞에옴
함수 이름( ){
함수}
System.out.println(); → println 도 함수
함수-만들고-써먹기(호출)
call / invoke 같은뜻
(안에 있는 것) 부르는 용어 3가지
매개변수
파라미터
인자
함수를 (호출);하는 쪽에서 파라미터 - value(값)이 들어간다.
함수를 (구현){}하는 쪽에서 파라미터 - 변수선언(int, double..)이 들어간다(=메모리 할당)
그리고 파라미터엔 초기화 부분이 들어가면 안 된다. -은근 실수하는 사람 많음
ex. (int i=7) xxx
★함수안에 함수 만드는 문법은 없다.★
( ){
}
( ){
} correct
( ){
( ){
}
} 있을 수 없는 일
1번. (){}는 함수 만든 것, ();는 함수 호출한 것. 여기서 함수는 3개, 호출한 함수는 8개
//1번
public class hh {
public static void main(String[] args) {
System.out.println("프로그램의 시작");
hiEveryone(12);//12를 전달하며 hiEveryone호출(써먹기)
hiEveryone(13); //13 〃 //hiEveryone도()앞에있으니 함수임.
System.out.println("프로그램의 끝");
}
public static void hiEveryone(int age) { //매개변수가 하나인 메소드의 정의
System.out.println("좋은 아침입니다.");
System.out.println("제 나이는"+age+"세 입니다.");
hiEverybody(2020);
}
public static void hiEverybody(int year) {
System.out.println("지금은"+year+"년 입니다.");
}
}
//프로그램의 시작
//좋은 아침입니다.
//제 나이는12세 입니다.
//지금은2020년 입니다.
//좋은 아침입니다.
//제 나이는13세 입니다.
//지금은2020년 입니다.
//프로그램의 끝
2번
//2번 매개변수가 둘인 메소드의 정의, 매개변수가 없는 메소드의 정의
public class hh {
public static void main(String[] args) {
double myHeight = 175.9;
hiEveryone(12, 12.5);
hiEveryone(13, myHeight);
byEveryone();
}
public static void hiEveryone(int age, double height) {
System.out.println("제 나이는"+age+"세 입니다.");
System.out.println("저의 키는 "+height+ "cm 입니다.");
}
public static void byEveryone() {
System.out.println("담에 뵙겠습니다.");
}
}
//제 나이는12세 입니다.
//저의 키는 12.5cm 입니다.
//제 나이는13세 입니다.
//저의 키는 175.9cm 입니다.
//담에 뵙겠습니다.
3번
//3번 절대값 구하기
public class hh {
public static void main(String[] args) {
abs(7, 3);
abs(-5, -3);
abs(4,-3);
}
public static void abs(int i, int j) {
if(i-j<0) { //if,else써서 i<j이면 으로 만들수도있다.
i=-i;
j=-j;
}
System.out.println(i-j);
}
}
4번
//4번 별찍기. (층수)
public class ee {
public static void main(String[] args) {
starPrint(2);
starPrint(3);
starPrint(4);
}
public static void starPrint(int num) {
for(int i=1; i<=num;i++) {
for(int j=1; j<=i; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
리턴
리턴(반환) 타입 메소드이름 (파리미터){
반환 값(변수or상수);
}
boolean regStudent(String name){
return true;
}
리턴해야 값이 들어간다.
return은 public static void에서 void말고 변수가 들어간다
1번. public static int adder()에서 왜 int가 들어가는지? -- void 가 오면 return값이 없는것임.
//1번 리턴
public class ee {
public static void main(String[] args) { //void=리턴타입
int result;
result=adder(4,5); //adder가 반환하는 값을 result에 저장
System.out.println("4 + 5 = " +result);
System.out.println("3.5 x 3.5 = "+square(3.5)); //println에 함수가 또 들어감-
}
public static int adder(int num1, int num2) { //리턴
int addResult = num1 + num2;
return addResult; //addResult의 값을 반환
//return:값의 반환을 명령
}
public static double square(double num) {
return num * num; //num*num의 결과를 반환
}
}
2번. final double에서 final은 왜 붙는지?
//2번 메소드 연습문제
public class ee {
public static void main(String[] args) {
System.out.println("원 둘레(2.4): " + calCircleRound(2.4));
System.out.println("원 넓이(2.4): "+ calCircleArea(2.4));
}
public static double calCircleRound(double r) {
final double PI = 3.14;
return r*r*PI;
}
public static double calCircleArea(double r) {
final double PI = 3.14;
return r*r*PI;
}
}
'코딩 > 자바 기초특강' 카테고리의 다른 글
20.11.19 THU (0) | 2020.11.19 |
---|---|
20.11.18 WED (0) | 2020.11.18 |
20.11.06 FRI 자바기초특강 5 (0) | 2020.11.06 |
20.11.05 THU 자바 기초특강 (0) | 2020.11.05 |
20.11.04 WED 3일차 과제 --11.05 THU 과제 피드백 (0) | 2020.11.04 |
댓글