class
public class
차이점: javac는 public class와 파일명이 같은지 본다!
private -> should be used inside the class
에러가 나지 않는다!
class Sample{
private int data_field;
void foo() {
data_field=1;
}
public int data_field() {
return data_field;//private int data_field를 가리킨다
}
}
다른 클래스에서
Sample x = new Sample();
System.out.println(x.data_field());
getter와 setter
class Sample{
private int data_field;
void foo() {
data_field=1;
}
//getter
public int data_field() {
return data_field;
}
//setter
public void set_dat_field(int x) {
data_field=x;
}
}
class Sample{
int data_field=1;
}
public과 private이 붙지 않으면 default visibility
default visibility->같은 package에서 사용 가능하다!
visibility: public, static, private
class Sample{
public static void main(){
}
static void m(){
}
}
static은 다음주에 더~
array
int a[10]=>40bytes
array is a class
int [] ary =new int[3];
ary[0]
ary[1]
ary[2]
ary[3]
자바에서 새로운 instance 생성되었을때 every data field is zero
package javaclass0409;
public class Test02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] ary=new int [3];
System.out.println(ary[0]);
}
}
package javaclass0409;
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] ary=new int [3];
System.out.println(ary.length);
System.out.println(ary[0]);
System.out.println(ary[1]);
System.out.println(ary[2]);
ary.length=4;
System.out.println(ary[3]);
}
}
컴파일 에러!
final: prefix -> you cannot change the datafield
final이 들어간다면! the value cannot be changed!
public final int data_field=1;
.
class Sample{
public final int length
public void int(){
length++;
}
}
컴파일 타임 에러가 난다. length++불가능하다!
처음에 0으로 초기화->&public valuel=초기값으로 영원히
자바에서는 딱 한번만 초기화한다.(constructor)
constructor의 이름은 class이름과 같아야 한다!