문법)
do{
반복수행문장들
}while(조건식);
package day0108;
public class TestDoWhile {
public static void main(String[] args) {
int i = 0;
do {
i++;
System.out.println(i);
} while (i < 10);
// 1~100까지 합 출력
int j = 0;
int sum = 0;
do {
j++;
sum += j;
System.out.println("j는 " + j + "현재 합은 " + sum);
} while (j < 101);
System.out.println("1부터 100까지의 합은 " + sum);
}// main
}// class
class 클래스명{
instance variable //member variable
public static void main(String[] args){
static variable //class variable
}
local variable
}
static variable(class variable) : 공용변수(모든 instance(객체)가 하나의 변수를 사용.)
<하나만 사용가능>
public : 클래스 외부에서 사용가능.
protected : 같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 상속관계의 자식 클래스에서만 사용가능.
default : 접근지정자를 기술하지 않는 것.
같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 사용할 수 없다.
private : 클래스 내부에서만 사용가능.
<여러개 사용가능>
final : 값 변경 불가. ( 선언시에만 값 할당 가능)
static : 공용메모리 사용.
transient : 직렬화 방지
값 할당
클래스명.변수명 = 값;
사용
클래스명.변수명
<아래로 내려갈 수록 안전>
public
protected
default
private
<하나만 사용가능>
public : 클래스 외부에서 사용가능.
protected : 같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 상속관계의 자식 클래스에서만 사용가능.
default : 접근지정자를 기술하지 않는 것.
같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 사용할 수 없다.
private : 클래스 내부에서만 사용가능.
<여러개 사용가능>
final : 값 변경 불가. ( 선언시에만 값 할당 가능)
static : 공용메모리 사용.
transient : 직렬화 방지
객체화
instance variable를 사용하기 위해 선언
클래스명 객체명=new 클래스명();
값 할당
객체명.변수명=값;
값 사용
객체명.변수명
10 이라는 값을 method 안에서 잠시 사용
– local variable ( 값이 유지되지 않는다.)
10 이라는 값을 모든 객체가 사용해야 한다.
– static variable (값이 유지 된다. – 값이 변경되면 모두 변경된 값으로 사용된다.)
10 이라는 값이 여러 개가 구분되어 사용되어야한다.
– instance variable ( 값이 유지 된다. – 값이 변경되면 특정 객체에 있는 값만 변경된다.)
<하나만 사용가능>
public : 클래스 외부에서 사용가능.
protected : 같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 상속관계의 자식 클래스에서만 사용가능.
default : 접근지정자를 기술하지 않는 것.
같은 패키지의 다른 클래스에서 사용가능.
패키지가 다르면 사용할 수 없다.
private : 클래스 내부에서만 사용가능.
<여러개 사용가능>
final : Override 방지
static : 객체화 없이 method를 직접 호출하여 사용할 때
synchronized : 동기화 처리
반환형
return type
method 호출시 값을 반환할 때 사용.
void - 반환 값 없음. 기본형 데이터형, 참조형 데이터형 사용
매개변수
parameter
method외부의 값을 method내부로 전달하기 위한 변수.
기본형 데이터형, 참조형 데이터형 사용가능
method 작성
public static void method(매개변수...){
업무정의
}
호출
클래스명.method명(값, 값2, ,,,);
* 두 정수를 입력받아(parameter는 정수로 2개 필요) 더한 값을 출력(구현하는 업무)하는 일
class Test{
public static void plus( int num, int num2 ){
//parameter : arguments를 받아서 저장하기위한 변수
int result=0;
result = num+num2;
System.out.println( result );
}
public static void main(String[] args){
Test.plus( 1 , 8 ); //호출
//arguments : 매개변수로 입력되는 값 들…
}
}
method 정의
public void method명(매개변수...){
업무
}
객체 생성
클래스명 객체명=new 클래스명();
호출
객체명.method명(값,,,);
class Test{
int day;
public void printDay(){
System.out.println(day + "일");
}
public static void main(String[] args){
Test t=new Test();
t.printDay();
}
}
public void typeA(){
//일 : 입력된 값이 없으므로 항상 같은 일을 수행 => 정적 => 고정일
}//호출한 곳으로 돌아가
public static void main(String[] args) {
//객체화 : 인스턴스 변수나 인스턴스 method를 사용하기 위해서
클래스명 객체명=new 클래스명();
}
호출)
객체명.typeA();
public void typeB(int i){
//일 : 입력된 값(8과 9)를 가지고 일을 수행 => 가변적
}//
호출)
객체명.typeB(8);
객체명.typeB(9);
- 값으로 사용되는 method
- method의 가장 마지막 줄에 반드시 return (분기문)이 나와야 한다.- return 사용법
return 값;//<<변수, 상수, 연산식 : 반환형과 동일한 형의 값이 정의되어야 한다.
public int typeC(){
//일
return 8;
}//
호출)
데이터형 변수명 = 객체명.typeC();//호출되면 리턴된 값으로 변환, 이후 변수에 할당.
System.out.println(변수명);//출력
또는
System.out.println(객체명.typeC());//합쳐도 됨
public int typeD(double d,,,){
//일
return (int)d;//casting double -> int로 변환
}
호출)
데이터형 변수명 = 객체명.typeD(1.8);//호출되면 리턴된 값으로 변환, 이후 변수에 할당.
method 정리
객체화 : 인스턴스 변수나 인스턴스 method를 사용하기 위해
클래스명 객체명=new 클래스명();반환형 없음(void임)
매개변수 없음 void typeA() => 1. 고정 일
매개변수 있음 void typeB(int i) => 2. 가변 일
반환형 있음(int & return)
매개변수 없음 int typeC() => 3. 고정 값
매개변수 있음 int typeD(double d) => 4. 가변 값