笔记3——面向对象上.doc
文本预览下载声明
3.1
封装
类可以将数据和函数封装在一起,数据表示类的属性,函数表示类的行为
对象间的比较
“==”比较值是否相等,比较栈中的数
“equals”比较内容是否相等,用于比较堆中的数
把变量封装起来,定义为私有
构造函数(编译器自动调用的,进行初始化)
构造方法的特征
它具有与类相同的名称;
它不含返回值;
它不能在方法中用return语句返回一个值
注意:在构造方法里不含返回值的概念是不同于“void”的,在定义构造方法时加了“void”,结果这个方法就不再被自动调用了。
构造方法的作用:当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。这就好像我们规定每个“人”一出生就必须先洗澡,我们就可以在“人”的构造方法中加入完成“洗澡”的程序代码,于是每个“人”一出生就会自动完成“洗澡”,程序就不必再在每个人刚出生时一个一个地告诉他们要“洗澡”了。
This
一个类中的成员方法可以直接调用同类中的其他成员,其实我们在一个方法内部使用“this.其他成员”的引用方式和直接使用“其他成员”的效果是一样的,那this还有多大的作用呢?在有些情况下,我们还是非得用this关键字不可的 :
让类的成员变量名和对其进行赋值的成员方法的形参变量同名是必要的,这样的代码谁看了都能明白这两个变量是彼此相关的,老手看到函数的定义,就能揣摩出函数中的代码,大大节省了别人和自己日后阅读程序的时间。
假设我们有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数。
构造方法是在产生对象时被java系统自动调用的,我们不能在程序中象调用其他方法一样去调用构造方法。但我们可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。
垃圾回收机制
Finalize()
(6)
1.Test32.class
public class Test32 {
private int weight;
private String name;
private int age;
private String sex;
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void add(){
System.out.println(add=+weight);
}
public Test32(){
}
public Test32(int age){
this.age=age;
}
}
2.
Test31.class
public class Test31 {
int age;
int height;
void shot(){
int age=20;
System.out.println(sdsf:+this.age);//this可以访问类变量
System.out.println(sdsf:+age);//访问的是方法变量
}
public static void main(String args[]){
// Test31 t1=new Test31();//创建对象t1
// Test31 t2=new Test31();//对象不会互相影像
// t1.age=18;
// t2.age=19;
// t1.shot();
// t2.shot();
// bijiao();
// sshh(new Test31());//使用匿名对象,当你只需要使用这个类一次的时候
// sshh(t1);//也可以使用其中一个对象
Test32 t3=new Test32();
t3.add();
}
static void bijiao(){
String s
显示全部