Java笔记(基础第三篇)
面向对象的特点:
封装 继承 多态
类的构造方法
如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当视图调用无参构造方法实例化一个对象时,编译器会报错,所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。
静态变量、常量和方法
由static修饰的变量、常量和方法被称作静态变量、常量和方法。
被声明为static的变量、常量和方法被称为静态成员。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。
在java语言中对静态方法有以下两点规定:
1、 在静态方法中不可以使用this关键字。
2、 在静态方法中不可以直接调用非静态方法。


对象的销毁
何种对象会被java虚拟机视为垃圾
1、 对象引用超过其作用范围,则这个对象将被视为垃圾。
2、 将对象赋值为null。
Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。
接口的定义:

Java的类文件一样,接口文件的文件名必须与接口名相同。
接口的使用,基本语法格式如下:

继承中的重写
重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类额定方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。
使用super关键字
子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量和父类的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。成员方法同理。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。Super关键字主要有以下两种用途。


多态
多态性是面向对象程序设计的重要部分。在java语言中,通常使用方法的重载和重写实现类的多态性。
重写之所以具有多态性,是因为父类的方法在子类中被重写,子类和父类的方法名称相同,但完成的功能却不一样,所以说,重写也具有多态性。
类的高级特性
所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。语法格式如下:

包含一个或多个抽象方法的类必须被声明为抽象类。因为抽象方法没有定义方法的实现部分,如果不声明为抽象类,这个类将可以生成对象,这时当用户调用抽象方法时,程序就不知道如何处理了。
内部类
如果在一个类中在定义一个类,就将在类中在定义的哪个类成为内部类。内部类可分为成员内部类、局部内部类以及匿名内部类。
成员内部类
在一个类中使用内部类可以在内部类中直接存取其所在类的私有成员。语法格式如下

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

在实例化内部类对象时,不能再new操作符之前使用外部类名称那种形式实例化内部类对象,而是应该使用外部类的对象来创建其内部类的对象。
内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。
局部内部类
局部内部类是指在类的方法中定义的内部类,它的作用范围也是在这个方法体中。
内部类可以访问当前代码块的常量以及此外部类的所有成员。
匿名内部类
在编写程序代码时,不一定要给内部类取一个名字,可以直接以对象名代替。匿名内部类的所有实现代码都需要在大括号之间进行编写。
匿名内部类的编写格式如下:

Java笔记(基础第三篇)的更多相关文章
- 《Java笔记——基础语法》
Java笔记--基础语法 一.字符串的拼接: 例如: System.out.println(""+""); 二.换行语句: 例如: Syst ...
- Java语言基础(三)
Java语言基础(三) 一. 补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...
- NHibernate 映射基础(第三篇) 简单映射、联合主键
NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来 ...
- Java 多线程基础(三) start() 和 run()
Java 多线程基础(三) start() 和 run() 通过之前的学习可以看到,创建多线程过程中,最常用的便是 Thread 类中的 start() 方法和线程类的 run() 方法.两个方法都包 ...
- 《Java笔记——基础知识点》
Java笔记--基础知识点 位运算符操作的都是整型的数据. 位运算符是直接对整数的二进制进行计算. 整数不能进行逻辑运算. 运算符优先级别由高到低分别是:() > ! > 算术 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- Java笔记 - 基础语法简介
一.Java语言简介 JAVA是一种面向对象的程序设计语言,为不同级别的开发划分为J2SE.J2EE(Java Web).J2WE三种平台,可以进行桌面应用编程.WEB客户端编程.WEB服务器编程.手 ...
- Java核心基础第3篇-Java流程控制
Java流程控制 本章一起来探讨下Java的流程控制语句.主要从以下几个方面展开: Java分支语句 Java循环语句 Java其实和其他任何的开发语言一样,分支语句和循环语句是必不可少的,有个这两个 ...
- [Java入门笔记] Java语言基础(三):运算符
简介 运算符是一种特殊的符号,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号,运算符和操作数的有效组合称为表达式. Java中运算符主要分为以下几类: 赋值运算符 算术运算符 关 ...
随机推荐
- Mybatis插件之Mybatis-Plus的CRUD方法
使用Mybatis-plus进行基本的CRUD(增查改删)操作. 实体类(User)代码: import com.baomidou.mybatisplus.annotation.IdType; imp ...
- PTA(Advanced Level)1048.Find Coins
Eva loves to collect coins from all over the universe, including some other planets like Mars. One d ...
- SQL SERVER修改字段为首字母大写
--修改字段为首字母大写 -- EXEC sp_rename 'ShenBao_CaiGouFuKuan.Tid', 'Tid', @objtype = 'COLUMN'; SELECT 'EXEC ...
- Java基础部分 2
一. Java基础部分 2 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2 2.Java有没有goto? 2 3.说说&和&&am ...
- Oracle 查询id相同多个数据取一条
涉及场景 需要查出同一ID下 COLUMN_A字段为数值型的 多条数据 只去COLUMN_A为最小值的那条 SELECT * FROM (SELECT A.ID, A.COLUMN_A, ROW_NU ...
- 第7章:LeetCode--算法:递归问题
70. Climbing Stairs This problem is a Fibonacci problem.F(n)=F(n-1)+F(n-2);Solving this problem by r ...
- C++继承种类
- 【Python基础】05_Python中的while循环
1.程序的三大流程介绍 顺序 —— 从上到下,顺序执行 分支 —— 根据条件判断,决定代码的分支 循环 —— 让特定代码执行 2.while 基本语法 while 条件(判断 计数器 是否达到 目标次 ...
- 一文看懂java io系统 (转)
出处: 一文看懂java io系统 学习java IO系统,重点是学会IO模型,了解了各种IO模型之后就可以更好的理解java IO Java IO 是一套Java用来读写数据(输入和输出)的A ...
- 把.exe的格式的运行程序加到电脑本地服务的办法(本文来源于百度)
Instsrv.exe(可以给系统安装和删除服务) Srvany.exe(可以让程序以服务的方式运行) 方法/步骤 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srv ...