Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > java基础进阶第二步
【标  题】:java基础进阶第二步
【关键字】:java
【来  源】:http://www.cublog.cn/u/18783/showart.php?id=110550

java基础进阶第二步

Your Ad Here
第二次:修饰符

2.1 访问控制
封装将数据和处理数据的代码连接起来。同时,封装也提供了另外一个重要属性:访问控制。通过封装你可以控制程序的某个部分可以访问类的成员,防止对象的滥用,从而保护对象中数据的完整性。对于所有的面向对象的语言,比如C++,访问控制都是一个很重要的方面。由于Java语言使用了包的概念,使它的访问控制相对来说更复杂一些。我们把控制访问控制权限的修饰符主要分为两类,类和它的方法及变量,下面我们分别简单介绍。

-类的访问控制

->;       Default:当类不使用任何访问控制修饰符时,即采用的默认的访问控制权限。它允许同一个包内的类访问,而对于它所在包以外的类则不能访问。

->;       Public:允许任何包中的任何类访问,对Java里面的所有类开放。

-方法和变量的访问控制

->;       Public:所有类均可以访问。

->;       Private:只能被它所在的类中的成员访问,使该定义的成员对外在的类不可见。

->;       Protected:可以被同一个包的类访问,另外其所有子类也可以访问。

->;       Default:当成员不使用任何访问控制修饰符时,即采用默认的访问控制权限。它和Protected类似,唯一的区别在于子类访问权限,它仅允许同一个包的子类访问,而其他包中的子类则不可以访问。

2.2 其他修饰符
       除了访问控制修饰符,Java还有其他繁多的修饰符来声明类、方法和变量,下面分别针对所修饰的对象来简单介绍一下主要的修饰符。

-类修饰符

->;       final:用来指定该类不能被其他类扩展,从而阻止继承。

->;       abstract:表示该类是不允许被实例化的类,也就是说该类需要被扩展继承。被这样声明的类也称为抽象类。

显而易见,final和abstract不能同时使用。

-方法修饰符

->;       abstract:被声明的方法称为抽象方法,不含任何代码,需要其继承的子类的相应方法覆盖重载。这里需要注意的是被声明有abstract方法的类必须被声明为abstract。

->;       final:声明的方法不允许被覆盖重载。

->;       static:声明的方法被成为类方法,不依赖于任何的对象,不需要实例化对象即可直接使用类名来调用该方法。注意的是在该方法体内不可访问实例变量。

->;         变量修饰符

->;       static:被声明为static的变量实际可以看作就是全局变量,同样不需要实例化对象即可直接使用类名来引用之。

->;       final:被声明的变量的内容不可以被修改,实际可以被看作是一个常量,类似于C或者C++中的const。

2.3 缺省构造函数
       我们都知道当对象被实例化的时候,构造函数总是被调用。如果我们在定义类的时候不指定一个构造函数,Java会自行创建一个不带参数的缺省构造函数。而如果我们定义有了一个构造函数,则Java不会再创建缺省构造函数。

更值得注意的是,如果子类的超类不含有不带参数的构造函数,那么子类在使用缺省构造函数就会出错,Java不会为子类创建不带参数的缺省构造函数。因此,我们在使用缺省构造函数的时候要比较小心。我们可以看如下的例子:

class Fruit {

    public Fruit ( String color ) {

       System.out.print ( “color = ” + color ) ;

    }

}

class Apple extends Fruit {

    public static void main ( String [ ] args ) {

       Apple m = new Apple () ;

       }

}
运行结果出错:

Fruit.java:6: No constructor matching Fruit ( ) found in class Fruit .

Class Apple extends Fruit {

1 error

2.4 合法的返回类型
       由于在方法调用的时候,方法返回的类型有可能与实际声明的类型不同,因此我们需要关心什么样的返回类型才是合法的。实际上,系统采用了隐式的类型转换来处理类型的返回。以下几种情况的是合法的:

->;         如果声明的是浮点类型,那么可返回整型类型。

->;         如果声明的是整型类型,那么只要返回的整型类型范围小于或等于声明的类型,返回合法。

->;         如果声明的是对象类型,那么只要返回的是该对象类型,或者是其子类的对象类型,合法。

Beginning.Java.2,.JDK.5.Edition 前两章摘抄:【上一篇】
weblogic8.1设置JVM内存:【下一篇】
【相关文章】
  • Beginning.Java.2,.JDK.5.Edition 前两章摘抄
  • JavaMail 1.4 发布
  • java基础进阶-3
  • java基础进阶--4
  • Beginning.Java.2,.JDK.5.Edition 第三章摘抄
  • .NET, C++, Flash, Java,系统架构,技术顾问---大规模招聘开始。
  • 几个有用的javascript验证脚本
  • java经典面试题集(转)
  • Java->Jsp网站制作数据库连结大全
  • Java图形界面开发
  • 【随机文章】
  • 谈VPN防火墙路由器(3)
  • 14个经典的javascript代码
  • linux网络的安全防范策略
  • 计算两个时间相差的天数
  • 解决“System.Data.Odbc.OdbcException: ERROR [IM001] [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此...
  • 使用Windows XP 的Windows Movie Maker
  • Windows 2000 Server入侵监测
  • 还有些技术性高的东西他做不起来
  • BSD基于IP的新协议实现(教学用)
  • 网页制作精彩实用技巧速递三则
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.