一.final关键字

    1.final关键字修饰变量,表示变量不可以被改变,如果想修改,编译器不会接受的。 注意:final关键字定义的变量必须赋值

       public  static final   修饰  白送和i全局常量    定义时,必须赋值、(常用)

    

    2.final修饰方法    这个方法不能被重写

          可以防止子类修改该类的定义与实现方式

    3.final修饰类    这个类不能被继承

          一个类不让任何类继承,并且不让其他人对这个类进行任何改动

二:内部类

    1.什么事内部类

        就是再类中,再定义一个类,内部类分为,成员内部类,局部内部类,匿名内部类

    2.什么是成员内部类

        在一个类中使用内部类,可以再内部类中 直接存取 所在类的所有私有成员,就是说,内部类,可以随意使用外部类的成员方法,成员变量

        内部类对象与外部类对象关系紧密,内外可以交互使用,彼此类中定义的变量

        可以使用this关键字获取内部类与外部类

  

      注意; 再内存中,所有的对象是放在堆中的,方法和方法中的形参,或者局部变量  是放在栈中的

    

    3.什么是局部内部类

        内部类不仅仅可以放在类中定义,还可以再类的局部位置定义,如 在类中的方法或者任意的作用域中 都可以定义为内部类

    4.什么是匿名内部类

        在一个方法中,将return语句和内部类定义语句合并在一起

          return  new B()

          {

            //内部类实体

           }

        例子 :

        interface BB(){};

        public class  AA()

        {

          public BB  doit()

          {

            return new BB()

            {

              private num=0;

              public int getValue(){return num};   //再java编译的时候,doit方法内部 会先返回一个BB的引用,然后return语句中插入一个定义内部类的代码,这个类是没有名称的

              //作用: 这种内部类的作用就是创建一个实现与BB接口的匿名类的对象

            }

          }

        }  

     注:匿名内部类编译以后,会产生 “外部类名$序号”为名称的 .class文件,序号一  1 到  n   排序,分别表示1到n个 匿名内部类

  

    5。什么是静态的内部类

        就是在内部类的前面加一个static ,一个静态内部类中可以声明static成员,但是非静态内部类中不可以声明静态成员。用的比较少

    

java基础讲解10-----类的高级特性的更多相关文章

  1. Java基础教程(10)--类

    一.声明类   你已经见过了以如下方式定义的类: class MyClass { // field, constructor, and method declarations }   上面是声明类的最 ...

  2. Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字

    Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...

  3. Java第五次作业--面向对象高级特性(抽象类与接口)

    Java第五次作业--面向对象高级特性(抽象类与接口) (一)学习总结 1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结. 2.汽车租赁公司,出租汽车 ...

  4. Java基础-DButils工具类(QueryRunner)详解

    Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...

  5. Java第四次作业——面向对象高级特性(继承和多态)

    Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...

  6. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

  7. JAVA基础(10)——IO、NIO

    转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...

  8. Java第四次作业—面向对象高级特性(继承和多态)

    Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...

  9. 多测师讲解常用的测试工具分为10类_高级讲师肖sir

    我们将常用的测试工具分为10类. 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app ...

  10. 夯实Java基础系列10:深入理解Java中的异常体系

    目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...

随机推荐

  1. 【线段树】POJ3225-Help with Intervals

    ---恢复内容开始--- [题目大意] (直接引用ACM神犇概括,貌似是notonlysucess?) U:把区间[l,r]覆盖成1 I:把[-∞,l)(r,∞]覆盖成0 D:把区间[l,r]覆盖成0 ...

  2. bzoj 4428: [Nwerc2015]Debugging调试

    4428: [Nwerc2015]Debugging调试 Description Your fancy debugger will not help you in this matter. There ...

  3. realloc 用法

    #include <stdio.h> #include <stdlib.h> #include <string> int main() { char * p_cha ...

  4. ubuntu系统使用dnw下载程序

    转:http://blog.chinaunix.net/uid-22030783-id-3350840.html 获得dnw4linux.tar.bz2 源码包,可在xcembed论坛下载:http: ...

  5. THttpClientSocket token验证

    THttpClientSocket uses SynCrtSock非WINHTTP.DLL里面的控件,可以用于手机端. function Client(const SQL: RawUTF8): Raw ...

  6. Sata win7 热插拔(AHCI)

    主板支持AHCI,把sata模式改成AHCI,在bios打开SATA热插拔开关 开启AHCI,需要修改注册表:HKEY_LOCAL_MACHINE\System\CurrentControlSet\S ...

  7. stylus使用文档总结:选择器+变量+插值+运算符+混合书写+方法

    建立好项目后我们来安装stylus npm install stylus stylus-loader --save-dev 这样就安装上了stylus. 接下来就可以使用了,使用方式分两种.一种是在. ...

  8. 在Spring3中使用注解(@Scheduled)创建计划任务

    Spring3中加强了注解的使用,其中计划任务也得到了增强,现在创建一个计划任务只需要两步就完成了: 创建一个Java类,添加一个无参无返回值的方法,在方法上用@Scheduled注解修饰一下: 在S ...

  9. scrapy爬虫框架实例一,爬取自己博客

    本篇就是利用scrapy框架来抓取本人的博客,博客地址:http://www.cnblogs.com/shaosks scrapy框架是个比较简单易用基于python的爬虫框架,相关文档:http:/ ...

  10. centos关闭sudo的ldap认证

    在新服务器上部署项目时,运行sudo命令会卡住很久,然后报错 sudo:ldap_start_tls_s(): Can't contact LDAP server 简直不能忍. 一番研究后发现是lda ...