一.类与对象
1. 类,对象概念
2. 匿名对象
New person().shout()
两种情况下使用(1)只需要进行一次方法调用;(2)匿名对象作为实参传递给函数
E.g. public static void getSomeone(Person P){
……
}
可以使用此调用:getSomeone(new person());
3. 类的封装性
目的:(1)隐藏类的实现细节;
(2)使用者只能通过实现约定的方法访问数据,限制不合理操作
(3)增强代码维护性
(4)可进行数据检查
总之:不让外边的对象直接调用类的成员(属性),不能修改该对象成员(属性)。而只能通过public的方法来进行调用修改。
方法:在类中的成员(属性),定义为private。
4. 构造函数
与类有相同的名称;没有返回值
Public方法名{
}
在调用初始化该类的时候,会直接调用初始化该类。
构造方法重载,与函数重载类似
5. This引用句柄
一般在该类中调用本类的属性,方法都不用this,但实际上已经默认。
有些情况还是需要要this句柄的。
(1) 形参与内部变量相同;
(2) 容器类的方法要创建不见类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数
(3) This重构
Public class person{
String name;
Int age;
Public person(String name){
This.name=name;
}
Public person(String name, int age){
This(name);
This.age=age
}
}
6. 垃圾回收方法
Finalize 对象已经变成垃圾,启动垃圾回收器时自动调用。但是我们可以在public void finalize(){添加操作}
System.gc 强制启动垃圾回收方法,调用finalize方法
二.参数
1.基础类型的参数传递
2.引用数据类型的参数传递
三.Static关键字
1. 静态变量(可用于计算创建或者释放了多少个对象);也叫类属性(static attribute)
Class A{
Private static int count=0;
Public A{ //构造器
Count=count+1;
}
Public void finalize(){ //释放对象
Count=count-1;
}
}
2. 静态方法,也称类方法(class methods)
(1)类(类不存在是否静态)的静态方法里只能直接调用同类中其他的静态成员(静态变量和方法),不能直接访问类的非静态成员。非静态的变量和方法使用前需先创建对象
(2)静态方法不能以任何形式引用this和super(只有创建对象了才可以用)
3. 静态代码块(Static block)
一个类中可以使用不包含在任何方法中的静态代码块,当类被载入时,静态代码块被执行,且只执行一次。(即使多次创建该对象,也只执行一次)
4. 单态模式(这里只是简单介绍,设置模式不适合在这里学,只是用来介绍static的用法)
最直接的目的就是在JVM只创建一个对象,减轻压力。
Public class Testsingle(){
Private static final Testsingle nlyone=new Testsingle();
Public static Testsingle gettestsingle(){ //返回Testsingle的对象
Return onlyone;
}
Private Testsingle(){
//实际上没有内容
}
}
方法前void class test(){} //void前有无public类似
四.内部类
内部类仅限于在类的内部使用。如B有一个内部类A,A是不为B外部知道的,只能被B调用。
如果内部类是public的,外面也可以引用创建,创建方法:
Outer.Inner innerobject=Outer.new Inner();
关于内部类的关键字public,private,protected,friend参看另外一日志。