Java中的类可以看做是C语言中结构体的升级版。
Java中的类也是一种构造数据类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量叫做“对象”。
一、概念
一条狗,它的状态有:颜色、名字、品种; 行为有:摇尾巴、叫、吃等。
对象:对象是类的一个实例,有状态和行为,狗就是一个对象。
类:类是一个模板,它描述一类对象的行为和状态。
1)、Java中的对象
类似狗的现实对象,程序中软件对象也有状态和行为。
软件对象的状态就是属性,行为通过方法体现。
2)、Java中的类
类可以看成创建Java对象的模板
publicclass Dog{
int age;
String breed;
String color;
void barking(){
……
}
void sleeping(){
……
}
}
一个类可以有多个方法,barking(),sleeping()都是类的方法。
二、构造方法
在类实例化的过程中自动执行的方法叫做构造方法,它不需要手动调用,构造方法可以在类实例化的过程中做一些初始化工作。
每个类都有构造方法,如果没有显式的为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
在创建对象的时候,至少要调用一个构造方法,构造方法的名称必须与类同名,一个类可以有多个构造方法。
public class Puppy{
publicPuppy(String name){ //构造方法
}
}
ps:
构造方法不能被显示调用。
构造方法不能有返回值,因为没有变量来接收返回值。
三、创建对象
对象是根据类创建的,在Java中,使用关键字new来创建一个新的对象。
1)、声明:声明一个对象,包括对象名称和对象类型。
2)、实例化:使用关键字new来创建一个对象。
3)、初始化:使用new创建对象时,会调用构造方法初始化对象。
public class Puppy{
public Puppy(String name){
……
}
public static void main(String []args){
PuppymyPuppy = new Puppy(“abc”); //这里创建一个Puppy对象
}
}
四、访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法,如下所示:
ObjectReference= new Constructor(); /* 实例化对象 */
ObjectReference.variableName; /* 访问其中的变量 */
ObjectReference.MethodName(); /* 访问类中的方法 */
下面的例子展示如何访问实例变量和调用成员方法:
public class Puppy{
int puppyAge;
public Puppy(String name){// 这个构造器仅有一个参数:name
System.out.println("Passed Name is:" + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("Puppy's age is:" + puppyAge );
return puppyAge;
}
public static void main(String []args){
Puppy myPuppy = new Puppy("tommy" ); /* 创建对象 */
myPuppy.setAge( 2 ); /* 通过方法来设定age */
myPuppy.getAge( ); /* 调用另一个方法获取age */
/*访问成员变量 */
System.out.println("Variable Value:" + myPuppy.puppyAge );
}
}
五、源文件声明规则
1> 一个源文件中只能有一个public类
2> 一个源文件可以有多个非public类
3> 源文件名称应该和public类的类名保持一致
4> package语句应该放在源文件首行
5> import语句和package语句对源文件中的定义的所有类都有效。在同一源文件中,不能给不同类不同的包声明