一、类和对象的定义
对象是实例,是一个具体的东西,对象有其独特的行为和特征;
类是一个模版,他描述一切对象的行为和特征;
二、类包括以下类型变量:
1.局部变量: 局部变量声明在方法、构造方法或者语句块中。变量的声明和初始化都是在方法中,方法结束后,变量将被销毁。
2.成员变量: 成员变量是声明在方法之外,类之中的变量。成员变量在创建对象的时候实例化。成员方法可以被类中方法,构造方法或语句块中引用。不会随方法的结束而被销毁。
3.类变量: 类变量也是声明在方法之外,类之内的变量,但是类变量需要加static
关键字。可以被类内方法和类外的其他类所引用;
public class animals {
//类变量
static String type;
//成员变量
int age;
String name;
public void eat(){
//局部变量
int index = 0;
System.out.println("animals eat!");
}
}
三、构造方法
每个类都有构造方法。如果没有显式地添加构造方法,java编译器将会提供一个默认的构造方法。
在创建对象的时候,必须至少调用一个构造方法。
构造方法的名字必须与类名相同,参数可以随意添加。
一个类可以有多个构造方法(根据参数的不同区分)。
构造方法的创建
public class animals {
public animals(){
//构造方法1
}
public animals(String name, int age){
//构造方法2
}
}
四、创建对象
在java中,创建对象需要分为三步:
1.声 明:声明一个对象,包括对象名称和对象类型
2.实例化:使用new
关键字来创建对象
3.初始化:使用构造方法来初始化对象
animals dog = new animals("dog", 2);
上式中,等式左边为对象的声明,animals
为对象类型,dog
为对象名称,等号右边,new animals()
创建一个对象,animals("dog", 2)
是调用了构造方法来初始化对象.
创建对象时使用构造方法
import packagetTest1.animals;
public class main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//构造方法1
animals dog = new animals();
//构造方法2
animals cat = new animals("cat", 5);
}
}
五、访问实例变量和方法
//实例化animals类
animals dog = new animals();
//访问实例变量
dog.age;
//访问方法
dog.eat();
六、源文件声明规则
- 一个源文件中只能有一个
public
类 - 一个源文件中可以有多个非
public
类 - 源文件的名称必须和
public
类的名称保持一致. - 如果一个类定义在某个包中,那么
package
语句必须放在首行(注释不算行数) - 如果一个类中含有
import
语句,那么import
语句应该放在package
语句和类定义之间,如果没有package
语句,import
语句应该放在最前面 -
import
语句和package
语句对于源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明
七、例子
package packagetTest1;
public class animals {
//类变量
static String type;
//成员变量
int age;
String name;
public void eat(){
//局部变量
int index = 0;
System.out.println("animals eat!");
}
public animals(){
//构造方法1
}
public animals(String name, int age){
//构造方法2
this.name = name;
this.age = age;
System.out.println("创建的动物name :" + name + " age : " + age);
}
public void setAge(int age){
System.out.println("设置age :" + age);
this.age = age;
}
public int getAge(){
System.out.println("获取age :" + this.age);
return this.age;
}
}
package javaPackageTest;
import packagetTest1.animals;
public class main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//构造方法1
animals dog = new animals();
dog.setAge(5);
dog.eat();
//构造方法2
animals cat = new animals("cat", 5);
cat.getAge();
cat.eat();
}
}
输出结果为:
设置age :5
animals eat!
创建的动物name :cat age : 5
获取age :5
animals eat!