package three;
class Box1 {
long idNum;
static long boxID = 100;
static long getcurrentID() {
return ++boxID;
// return boxID++;
}
}
public class Ex {
public static void main(String[] args) {
Box1 mybox1 = new Box1();
mybox1.idNum = Box1.getcurrentID();
Box1 mybox2 = new Box1();
mybox2.idNum = mybox2.getcurrentID();
System.out.println("mybox1의 id 번호 : " + mybox1.idNum);
System.out.println("mybox2의 id 번호 : " + mybox2.idNum);
System.out.println("박스의 번호는 " + Box1.boxID + "번 입니다.");
}
}
mybox1의 id 번호 : 100
mybox2의 id 번호 : 101
박스의 번호는 102번 입니다.
FieldEx.java
package three;
class Field {
static int classVar = 10; //클래스 변수 선언
int instanceVar = 20; //인스턴스 변수 선연 = 멤버변수
void method() {
int something = 10; //지역 변수
System.out.println(something);
}
}
public class FieldEx {
public static void main(String[] args) {
int var = 30; //지역 변수 선언
System.out.println(var + "\n"); //지역 변수 참조
Field myField1 = new Field(); //인스턴스 생성
Field myField2 = new Field(); //인스턴스 생성
System.out.println(Field.classVar); //클래스 변수 참조
System.out.println(myField1.classVar);
System.out.println(myField2.classVar + "\n");
myField1.classVar = 100; //클래스 변수의 값을 변경
System.out.println(Field.classVar); //클래스 변수 참조
System.out.println(myField1.classVar);
System.out.println(myField2.classVar + "\n");
System.out.println(myField1.instanceVar); //인스턴스 변수 참조
System.out.println(myField2.instanceVar + "\n");
myField1.instanceVar = 200; //인스턴스 변수의 값을 변경
System.out.println(myField1.instanceVar); //인스턴스 변수 참조
System.out.println(myField2.instanceVar);
myField1.method();
}
}
30
10
10
10
100
100
100
20
20
200
20
10
MethodEx.java
package three;
class Method {
//public Method(){}
int a = 10, b = 20; //멤버변수, 인스턴스변수
int add() { return a + b ; } //멤버메소드, 인스턴스메소드 //30
static int add(int x, int y) { return x + y; } //static메소드-멤버위장,정적변수, 클래스변수 //50
}
public class MethodEx {
public static void main(String[] args) { //메인메소드
System.out.println(Method.add(20, 30)); //50
//Method.add(20, 30) static메소드,클래스메소드,정적메소드 호출문
Method myMethod = new Method();
//객체생성문
System.out.println(myMethod.add()); //30
//myMethod.add() 메소드,멤버메소드,인스턴스 메소드 호출문
}
}
50
30
School.java
package three;
class Student {
private String name;
private int id;
private int age;
public Student() {} //기본생성자
public Student(String name, int id, int age) { //기타생성자
this.name = name;
this.id = id;
this.age = age;
}
public void setName(String name) {this.name = name;} //메소드
public void setId(int id) {this.id = id;} //메소드
public void setAge(int age) {this.age=age;} //메소드
public String getName() {return name;}
public int getId() {return id;}
public int getAge() {return age;}
}
public class School {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("홍길동");
stu.setId(2017313297);
stu.setAge(20);
System.out.println("이름 : " + stu.getName());
System.out.println("학번 : " + stu.getId());
System.out.println("나이 : " + stu.getAge());
Student s1 = new Student("마이콜", 220302005, 25);
Student s2 = new Student("고길동", 200302001, 41);
Student[] sarr = new Student[2];
sarr[0] = s1;
sarr[1] = s2;
System.out.printf("%s, %s, %d\n", sarr[0].getName(),sarr[0].getId(), sarr[0].getAge());
System.out.println(sarr[1].getName() + ", " + sarr[1].getId() + ", " + sarr[1].getAge());
}
}
이름 : 홍길동
학번 : 2017313297
나이 : 20
마이콜, 220302005, 25
고길동, 200302001, 41