类与对象
类
类是JAVA语言中重要的复合型数据类型()。类的实现包括两个部分:成员变量和成员方法("方法"可以看作是C语言中的函数)
类的声明
要使用类,首先得对其声明。声明一个类其实就是创建一种新的数据类型。我们利用声明的类来定义类实例,即来获得一个对象。
声明类的语法有
[类修饰符] class <类名>{
//类的内容
}
例1
public class FirstDemo{ //public为访问控制修饰符,FirstDemo为类名
private String str; //str为成员变量
public void setPrac(String str){ //setPrac为成员方法(下getPrac同)
this.str=str;
}
public String getPrac(){
return str;
}
}
类成员的访问控制
- 访问控制修饰符
类或类的成员需要定义其作用域,即可访问范围。
如例1中"public",它是类FirstDemo的访问控制修饰符,表示类FirstDemo可以被JAVA中的其他类访问使用。
其他常用的访问控制修饰符和其作用域有:
修饰符\可访问范围 | 同一类 | 同一包 | 不同包中的子类 | 不同包中的非子类 |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |
("Y"表示YES,即可访问,"N"表示NO,即不可访问。另外子类涉及继承,包和继承的内容之后会有介绍)
- 类型修饰符
类型修饰符有final,abstract,static。
类型修饰符用以说明类或类的成员的一些特殊性质。final和abstract主要与类的继承性质有关(之后会介绍)
现在主要讲static:
在一个类中,使用static来修饰的变量和方法(类成员)分别称为类(静态)变量和类(静态)方法,没有使用的就称为实例变量和实例方法。
类成员属于这个类而不属于这个类的某个对象,它由这个类所创建的所有对象所共有。实例成员则由每一个对象所独有。
不同对象之间,它们的实例成员互相独立,可以怎么说,任何一个对象改变了自己的实例成员只会影响这个对象本身,而非其他对象中的实例成员。
对实例成员而言,它只能通过对象来访问,而不能通过类名来访问,类成员则可直接通过类名访问。
例2
public class Test{//测试对实例成员和类成员的不同访问形式
static int i=1;
int j=1;
static void printStatic(){
System.out.println("i="+i);//System.out.println("j="+j);为非法访问
}
void print(){
System.out.println("i="+i);
System.out.println("j="+j);
}
public static void main(String[] args){
Test.printStatic();//Test.print();为非法访问
Test.i=2;//Test.j=2;为非法访问
Test test= new Test();//声明实例化对象test
test.i=3;
test.j=3;
test.print();
test.printStatic();
}
}
例2运行结果
i=1
i=3
j=3
i=3
- 类的成员变量
未完待续(内容如有错误请指正)