○ Method 호출방식
① call by value : 값에 의한 호출 방식
② call by reference : 주소에 의한 호출 방식
public class Test03_method {
public static void test1(int a, int b) {
System.out.println(a);
System.out.println(b);
}//test1() end
public static void test2(int[] a) {
for(int i=0; i<a.length; i++) {
System.out.println(a[i]);
}//for end
}//test2() end
public static void main(String[] args) {
int[] num= {10, 20, 30};
//call by value 값에 의한 호출 방식
test1(num[0], num[2]); //10, 30
// call by reference 주소에 의한 호출 방식
test2(num); //배열 요소가 저장되어 있는 주소(배열 전체)
}//main() end
}//class end
○ main 메소드
- JAVA 소스가 구현될 때 가장 먼저 호출/실행 되는 메소드(함수)
- 자바 가상 머신이 클래스를 실행할 때 main() 함수를 먼저 호출하고 그 이후가 실행된다
- main() 함수는 사용자가 임의로 호출할 수 없다
- .class파일 실행시 전달값은 main()함수의 매개변수가 받는다
package oop0404;
public class Test04_main {
public static void test() {
// main() 함수가 호출되는 시점과 값을 전달하는 예제
// 명령 프롬프트에서 실습
// ※ .class파일 실행시 전달값은 main()함수의 매개변수가 받는다
}//test() end
public static void main(String[] args) {
}//main() end
}//class end
/////////////////////////////////////////////////////////////////////////////////////////////
public class MainTest {
public static void main(String[] args) { //argument string
// oop0404.Test04_main.java 참조
for(int i=0; i<args.length; i++) {
System.out.println(args[i]);
}//for end
}//main end
}//class end
○ Access Modifier (접근 제어자, 접근 수정자)
① private : 비공개, 클래스 내부에서만 접근가능, 은폐 가능
② default(package) : 생략, 현재 package내에서만 접근가능
③ protected : 상속관계에 있는 클래스가 다른 패키지에 있는 경우
④ public : 공개, 프로젝트내에서 모두 접근 가능
package oop0404; // ← 현재 클래스(Test06_class)의 저장 위치
// 패키지(package) 선언은 한번만 한다
//클래스를 사용하려면 저장위치(package)를 선언하고 사용한다
import java.io.*;
import java.sql.*;
import java.util.Arrays;
import oop0401.*;
class Sungjuk{ //package 생략(default)
//클래스명의 첫 글자는 대문자로 한다
//멤버변수 field
public String name; //클래스 외부에서 접근가능하다(프로젝트 내에서 모두 사용가능)
int kor, eng, mat; //package 생략(oop0404에서 사용가능)
private int aver; //Sungjuk클래스 내부에서만 접근 가능하다
//멤버함수 method
private void view() {}//view() end
void calc() {//package 생략
//클래스 내부의 멤버들 간에는 Access Modifier와 상관없이 접근 가능하다
view();
aver=(kor+eng+mat)/3;
}//calc() end
public void disp() {
System.out.println(name);
System.out.println(kor);
System.out.println(eng);
System.out.println(mat);
System.out.println(aver);
}//disp() end
}//class end
● Practice 연습문제
Q) 표준편차(Standard deviation) 구하기
- 주어진 배열 aver의 표준편차를 구하는 sd() 메소드 작성
int[] aver= {85, 90, 93, 86, 82};
double result=sd(aver);
- 단, 표준편차는 다음 과정에 따라 구한다
① aver의 평균(87.2)를 구하고, aver의 각 요소에서 87.2를 뺀다
② ①의 값을 전부 양수로 바꾼다 → 편차
③ ②의 편차들의 평균값 = 표준편차
public static double sd(int[] aver){
int size=aver.length; //배열요소의 개수
double sum=0.0; //배열요소의 합
for(int i=0; i<size; i++) {
sum = sum + aver[i];
}//for end
double avg=sum/size; //배열요소의 평균
double dsum=0; //편차의 합
for(int i=0; i<size; i++) {
dsum=dsum+Math.abs(aver[i]-avg);
}//for end
double sd=dsum/size;
return sd;
}//sd() end
'Backend > JAVA_Basic' 카테고리의 다른 글
12. JAVA, 생성자 함수(Constructor) (0) | 2022.05.31 |
---|---|
11. JAVA, 클래스 (class, OOP, new 연산자, 객체, 인스턴스, this, 내부클래스) (0) | 2022.05.31 |
09. JAVA, 메소드⑴ (Method, 리턴값, 전달값, Overload) (0) | 2022.05.30 |
08. JAVA, 배열 (array, 1차원 배열, 2차원 배열) & 연습문제 (0) | 2022.05.30 |
07. JAVA, 제어문 (반복문, 조건문, for, while, if, switch) & 연습문제 (0) | 2022.05.29 |
댓글