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方法只能在该类中被访问,同一个包中都不行。
Ø 私有的只能被类中的成员函数访问,不能在类外通过类的对象访问
Ø 没有任何的修饰符,默认的是友好的变量和方法,只有同一个包的类才能访问友好的变量和方法,不同包的子父类都不行。
Ø 类的成员对类的可见性和对类的对象的可见性不同,前者可以访问没有限制,而后者视成员的访问属性制约。
|
public |
protect |
default |
private |
同类 |
√ |
√ |
√ |
√ |
同包 |
发表评论
最新评论
|
评论