锁定老帖子 主题:java基础笔记(二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||
发表时间:2009-02-04
最后修改:2009-02-04
4、类与对象 4.1、对象的创建和使用 4.1.1、构造方法 Ø 构造方法的名称必须和类名相同 Ø 必须是void型的 Ø 创建类的时候会有默认的构造方法,若需要在构造方法中添加特定的功能需要显示的给出构造方法 Ø 构造方法的功能就是为类的对象分配内存,所以没有显示的构造方法 Ø 可以定义不止一个构造方法,但不同的方法必须有不同的参数,以实现构造方法的重载。 4.1.2、对象的创建(声明之后必须用new来创建才可以引用) Hello abc; Abc=new hello(); 或hello abc=new hello(); Ø 此时创建了对象abc,返回了引用abc,通过对它的引用可以访问该对象,abc称为一个引用变量。 Ø Abc就是该对象的内存地址,对abc的引用相当于对这个地址的访问,这种对内存地址的访问,相当于c语言中指针的功能。 4.2、类的成员 4.2.1、成员变量和局部变量 Ø 成员变量是类体中的变量;局部变量是方法中的变量。 Ø 成员变量在整个类中都有效;局部变量只在方法中有效。 4.2.2、成员变量分为:类变量和实例变量 Ø 类变量有关键字static修饰,表示变量的内存单元在程序运行过程中都不会被其他的变量占用(修改也只是所有的类的成员共用一个地址) Ø 实例变量没有static 修饰,其内存单元在被定义的类以外即可被其他变量占用。 4.2.3、类方法和实例方法 Ø 有关键字static 修饰的是类方法,没有的是实例方法。 Ø 类方法只能操作类变量,而实例变量既能操作类变量,也可以操作实例变量。 Ø 实例方法只能通过对象进行调用,类方法既可以通过对象调用也可以通过类名调用。 Static变量和方法都属于某个类,而不属于某个对象,因此作为java程序的入口函数main函数必须是是static,这样在执行的时候java 类名,否则必须先要创建对象再来应用入口函数这样程序无法解释了. 4.2.4、this关键字 Ø 表示的是当前对象; Ø 当前对象就是指正在操作的对象。 Ø this变量代表对象本身 Ø 当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。 Ø 使用this简化构造函数的调用。 Ø 关于实例方法和实例数据成员的进一步说明 一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝。this变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。 Ø 4.3、继承 Ø 一个类可以通过extends继承另一个类 Ø 子类具有父类所有非私有的成员 Ø 子类在继承父类成员的同时还可以创建自己的对象 Ø 特殊变量super,提供了对父类的访问。 Ø 可以使用super访问父类被子类隐藏的变量或覆盖的方法。 Ø 每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
4.4、访问权限 4..4.1类的说明符 Ø 同一个源文件命名的类都属于一个包(package),缺省的类只能在同一个包中被访问,要用到其它包中的类,必须先import(或者将要用到类的类名完整的写出),且是public Ø Final类是指是终点,没有子类。不能被继承。(主要是用在某些标准类不需要其它的修改,便声明为final类) Ø Abstract修饰的类,是指不能创建对象,但可以继承,继承的类可以创建对象。 4.4.2、方法的说明符 Ø Public 的方法和变量可以被其它的类访问。 Ø Private 的方法和变量是私有的,不能在其它的类中访问私有的变量和方法private方法只能在该类中被访问,同一个包中都不行。 Ø 私有的只能被类中的成员函数访问,不能在类外通过类的对象访问 Ø 没有任何的修饰符,默认的是友好的变量和方法,只有同一个包的类才能访问友好的变量和方法,不同包的子父类都不行。 Ø 类的成员对类的可见性和对类的对象的可见性不同,前者可以访问没有限制,而后者视成员的访问属性制约。
|
浏览 1150 次