面向对象的特点:

封装 继承 多态

类的构造方法

如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当视图调用无参构造方法实例化一个对象时,编译器会报错,所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。

静态变量、常量和方法

由static修饰的变量、常量和方法被称作静态变量、常量和方法。

被声明为static的变量、常量和方法被称为静态成员。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。

在java语言中对静态方法有以下两点规定:

1、 在静态方法中不可以使用this关键字。

2、 在静态方法中不可以直接调用非静态方法。

对象的销毁

何种对象会被java虚拟机视为垃圾

1、 对象引用超过其作用范围,则这个对象将被视为垃圾。

2、 将对象赋值为null。

Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。

接口的定义:

Java的类文件一样,接口文件的文件名必须与接口名相同。

接口的使用,基本语法格式如下:

继承中的重写

重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类额定方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。

使用super关键字

子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量和父类的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。成员方法同理。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。Super关键字主要有以下两种用途。

多态

多态性是面向对象程序设计的重要部分。在java语言中,通常使用方法的重载和重写实现类的多态性。

重写之所以具有多态性,是因为父类的方法在子类中被重写,子类和父类的方法名称相同,但完成的功能却不一样,所以说,重写也具有多态性。

类的高级特性

所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。语法格式如下:

包含一个或多个抽象方法的类必须被声明为抽象类。因为抽象方法没有定义方法的实现部分,如果不声明为抽象类,这个类将可以生成对象,这时当用户调用抽象方法时,程序就不知道如何处理了。

内部类

如果在一个类中在定义一个类,就将在类中在定义的哪个类成为内部类。内部类可分为成员内部类、局部内部类以及匿名内部类。

成员内部类

在一个类中使用内部类可以在内部类中直接存取其所在类的私有成员。语法格式如下

可以直接使用内部类实例化内部类对象,但由于是在主方法中实例化内部类对象,必须在new操作符之前提供一个外部类的引用。例如:

在实例化内部类对象时,不能再new操作符之前使用外部类名称那种形式实例化内部类对象,而是应该使用外部类的对象来创建其内部类的对象。

内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。

局部内部类

局部内部类是指在类的方法中定义的内部类,它的作用范围也是在这个方法体中。

内部类可以访问当前代码块的常量以及此外部类的所有成员。

匿名内部类

在编写程序代码时,不一定要给内部类取一个名字,可以直接以对象名代替。匿名内部类的所有实现代码都需要在大括号之间进行编写。

匿名内部类的编写格式如下:

最新文章

  1. LAMP_源码安装全教程
  2. 图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
  3. 从头开始搭建一个dubbo+zookeeper平台
  4. golang 管道
  5. 【OC简介-类和对象】
  6. Ubuntu 14.04安装OpenCV 3.1
  7. 用JQuery实现表格隔行变色和突出显示当前行
  8. mysql批量上传数据
  9. 第一章:关于Ehcache
  10. vue组件推荐
  11. JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript之间转换
  12. ubuntu + usb转RS232驱动
  13. LNMP环境包安装IonCube教程
  14. SpringMVC学习笔记:单例与并发问题
  15. POJ 2575
  16. CMU-15445 LAB1:Extendible Hash Table, LRU, BUFFER POOL MANAGER
  17. 使用 lxml 中的 xpath 高效提取文本与标签属性值
  18. 2018NOIP爆0记第一弹
  19. git中如何合并某个指定文件?
  20. 获取Android运行apk的packagename 和activityname

热门文章

  1. 在centos 7下升级内核
  2. 局部内部类的final问题
  3. [转帖]curl 的用法指南
  4. 把Javascript 对象转换为键值对连接符字符串的方法总结
  5. Beanutils.copyProperties( )用法及重写提高效率
  6. Linux中实用的命令
  7. Apache + PHP Yii框架跨域访问API
  8. Linux系列(12)之例行工作调度
  9. python学习-7 条件语句 while循环 + 练习题
  10. 贝叶斯优化 Bayesian Optimization