java编程笔记6 面向对象一
1, 类的定义 [类修饰符] class ClassName { //类体的内容,成员变量+ 成员方法 } 注意:类修饰符只能是public或者无修饰符 若是public,类保存的文件名必须与类名一致(推荐总是保存的一直)
2, 成员变量和局部变量 1) 成员变量在整个类内部有效,局部变量只在定义它的方法内有效 2) 成员变量分类: 实例成员变量和类成员变量(static修饰) 3) 成员变量的隐藏,this关键字 当定义的局部变量和成员变量名字相同的时候,在局部变量的范围内要想使用成员变量得用this来引用
3, 成员方法 [accessType] returnType name([parameter]) { //方法体 } accessType:修饰符,方法的访问权限,可省略 accessType:返回类型 parameter:参数 方法的重载:指一个类中有几个名字相同的方法,但他们的参数不同(类型或者个数),不能用返回类型来区分重载
4, 构造方法 构造方法用来创建对象,完成初始化。 1) 名字与类名称完全相同 2) 没有返回类型,void也没有 3) 可以有多个构造方法,也可以没有构造方法(有默认的)
5, main方法 public static voidmain(String args[]) { //….. } 这里各项除了方法参数名args可以改变外,其他要一模一样。 一个java application的执行是从main方法开始的 参数String数组可以向应用程序传递参数,跟C差不多 Public classMainDemo { public static void main(String args[]) { for(int i = 0;i <args.length;i++) System.out.println(args[i]); }
} Java MainDemo 第一个参数 第二个参数 第三个参数 运行结果将分别输出这三个字符串。 6, 对象的创建,使用和清除 对象声明: 类名字 对象名字; 为对象分配内存:new 一般写在一起,如Circle circle1 = new Circle(); 不同的对象都拥有各自的实例变量和实例方法,但共有类变量。
对象的清除:java提供了垃圾自动回收机制 finalize()和gc() Object类的finalize()
Java垃圾回回收器的启用不是由程序员控制的,也无规律可循,并不一定产生了垃圾就被唤醒,因此这不是一个可靠地机制,我们无法保证每个对象的finalize()方法都将会被调用(finalize由系统调用) System.gc()方法强制启动垃圾回收器来回收垃圾。
public static void gc() 调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间
匿名对象: 匿名对象是指生成对象时候没有指定对象的名字,使用匿名对象有以下两种情况: 1) 如果对一个对象只调用一次,就能使用匿名对象,如上例。 new Person().cry(); 2) 将匿名对象作为参数传递给一个函数 若有以下方法 public void getName(Person p) { p.cry(); } 就可以这样来调用方法obj.getName(new Person());
7, 方法中参数的传递 按值传递 void method(int i,intj) { i = i * 2; j =j * 2 } int a; int b; 当调用method(a,b)后,a,b的值不会变化。
按引用传递 方法的参数为一个对象,调用方法时通过对象对对象的成员变量操作,这样调用之后,这个对象的成员变量是会变的; 例子: void method(MethodDemoobj) { obj.a = 2 * obj.a; obj.b = 2 * obj.b; |