什么是类?
类是对一组具有相同属性、操作的同类事物的描述,是抽象的、概念上的定义。
什么是对象?
对象是实际存在的实体,是通过类生成的
类和对象的关系:
类和对象之间的关系就像模具和通过模具生产出的产品的关系一样,类定义好了通过它生成的对象有哪些属性和方法,而模具定义好了通过它生成的产品该是个什么样子的
如何定义一个类:
一个类中可以包含属性(也叫变量)和方法(也叫函数)具体定义如下
class Person{ //Person为类的名称
final int MAX = 99;
String name; // name为类Person中的属性 该属性为String类型的
static int age;
public Person(String s,int a){
name = s;
age = a;
} //构造方法 含有两个参数 s 和a,没有返回值
public Person(){
name = “defaultName”;
age = 1;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
} //普通方法getName ,没有参数,返回值为String类型
public static int getAge(){
return age;
}
}
通过类创建对象
Person person;//这里是声明了一个对象,此时person的值未null
person = new Person(“yee4”,1);//new person(“yee4”,1);调用Person类的构造方法,在堆内存开辟一块空间,并返回它的地址,给等号左边的person引用。
对象的使用
创建了对象后,可以通过.操作符号来调用这个对象的公开的属性和方法如
person.getName();//调用person对象的getName();方法
person.age=1;//让person对象的age属性的值为1;
实例变量:
上面的name就是实例变量,实例变量是属于某个对象的,只能通过对象调用,如
person.name;
静态变量:
age是静态变量,静态变量是属于所有对象共有的,可以通过对象调用也可以通过类名调用 ,
person.age = 1;
或者
Person.age =1;
final变量(常量)
Person类中的MAX就是final变量,final常量声明时必须初始化,该常量只能读取它的值,不能去改变它的值
实例方法
上面的getName()方法就是实例方法,实例方法只能通过对象调用,如
person.getName();
实例方法的定义
返回值 方法名(参数类型 参数名){
方法体;
}
静态方法
getAge()方法就是静态方法,和静态变量一样,静态方法时属于类的,也就是说所有对象共用一个静态方法,静态方法可以通过某个对象名调用,也可以直接通过类名调用。如
person.getAge();
Person.getAge();
注意,在静态方法中只能调用这个类中的其他静态方法或者静态变量,不能调用这个类中的实例方法或者实例变量
方法重载
方法重载是在同一个类中方法名相同,参数个数不同,或者是参数类型不同的几个方法,形成了重载。如上面的两个构造方法
person();和person(String s,int a );
this关键字的使用
在 public void setName(String name) 这个方法中用到了this关键字,this是代表当前对象,如果通过刚才的person对象调用setName方法,如
person.setName(“newName”);
这个this也就是person这个对象,this.name,也就是person.name,由于作用域的原因,在setName这个方法中有和name这个属性同名的变量,我们直接写name,访问的是这个作用域的变量,也就是参数name,如果没有同名的变量,我们要访问这个对象中的属性,可以省略this.。 注意,this是代表某个对象,而静态方法不是属于某个对象,所以在静态方法中不能使用this
包的定义
包是一种将相关类及接口组合起来的集合体,即命名空间
声明方式:
package name;
name是包名称,包名习惯写成com.公司名称.地区.包名称
导入包
如果我们要导入包com.yee4.liu.HelloWorld
import com.yee4.liu.HelloWorld;
导入包后,就可以使用其他包中的类名了
本文转载于安卓杂谈网http://www.yee4.com/blog/117.html