1.不可被继承的成员与最终类:
在默认情况下,所有的成员变量和成员方法都可以被覆盖,如果父类的成员不希望被
子类的成员锁覆盖可以将它们声明为final。如果用final来修饰成员变量,则说明该成员变量
是最终变量,即常量,程序中的其他部分都可以访问,但不能修改。如果用final修饰成员方法
,则该成员方法不能被子类覆盖,即该方法为最终方法。对于一些比较重要且不希望被子类
重写的方法,可以使用final修饰符对成员方法进行修饰,这样可以增加代码的安全性
2.注意:所有被private修饰符限定为私有的方法,以及所有包含在final类中的方法,都被
默认为final的。这些方法既不能被子类继承,也不可能被覆盖,所以他们自然就是最终的方法
3.定义在类中的final成员变量和定义在方法中的final局部变量一旦给定,就不能更改
大体上说,final成员变量和final局部变量都是只读量,他们能且只能被赋值一次,而不能被
赋值多次
4.一个成员变量若被static final 两个修饰符所限定时,它实际的含义就是常量,所以在
程序中通常用static和final一起来指定一个常量,且这样的常量只能在定义时赋值
5.定义一个成员变量时,若只用final修饰而不能用static修饰,则必须且只能赋值一次
,不能默认。这种成员变量的赋值方式只有两种:一种是定义变量时赋初值;另一种是在某一个
构造方法中进行赋值
6.Object类常用的方法:
1.public boolean equals(Object obj):判断两个对象变量所指向的是否为同一个对象
2.public String toString () :将调用toString()方法的对象转换成字符串
3.public final Class getClass() :返回运行时对象所属的类
4.protected Object clone() :返回调用该方法的对象的一个副本
7.对字符串变量来说,使用“==”运算符和equals()方法来比较字符串时,其比较方式是
不同的。“==”运算符用于比较两个变量本身的值,即两个对象在内存中的首地址,而
equals()方法则是比较两个字符串中所包含的内容是否相等;而对于非字符类型的变量来说,
“==”运算符和equals()方法都用来比较其所指对象在堆内存中的首地址,换句话说,“==”
运算符和equals()方法都是用来比较两个类类型的变量是否指向同一个对象;另外,对于s3和
s4这两个由字符串常量所生成的变量,其中所存放的内存地址是相同的。
8.toString方法:将调用该方法的对象的内容转换成字符串,并返回其内容,但返回的是一些
毫无意义且看不懂的字符串。因此,如果要用toString()方法返回对象的内容,可以重新定义
该方法以覆盖父类的同名方法满足需求
9.getClass方法:功能是返回运行时的对象所属的类
10.对象运算符:instanceof
instanceof运算符测试一个指定对象是否是指定类或它的子类的实例,若是返回true,不是
返回false
11.getName()方法返回一个类的名称
getSubclass()方法获得父类
12.抽象类:在java语言中还可以创建专门的类作父类,这种类被称为抽象类(abstract class)
.抽象类的作用:有点类似“模板”,其目的是根据它的格式来创建和修改新的类
但是不能 直接由抽象类创建对象,只能 通过抽象类派生出新的子类,再由其子类来创建对象。
也就是说,抽象类是不能用new运算符来创建实例对象的类,它可以作为父类被它的所有子类
所共享 。
13.抽象类与抽象方法:
抽象类是以修饰符abstract修饰的类。抽象类的语法格式:
abstract class 类名{
声明成员变量;
返回值的数据类型 方法名 (参数表);
{
...}
abstract 返回值的数据类型 方法名(参数表);}----抽象方法。在抽象方法里,不能定义方法体
}
14.说明:在抽象类中的方法分为两种:一种是以前介绍的带有方法体的一般方法,另一种是
没有方法体的 “抽象方法”,它是abstract关键字开头的方法,此方法只能声明返回值的
数据类型、方法名称与所需要的参数,但没有方法体。也是说,对抽象方法只需要,而不需要
实现,即用“;”结尾,而不用“{}”结尾。当一种方法声明为抽象方法时,意味着这种方法
必须被子类的方法所覆盖,否则子类依然是抽象的。抽象方法声明中修饰符static和abstract
不能同时使用
15.抽象类的子类必须实现父类中的所有抽象方法,或者将自己也声明为抽象的
16.注意:1)由于抽象类是需要被继承,所以抽象类不能用final来修饰。也就是说,一个类
不能既是最终类又是抽象类,即关键字abstract与final不能合用
2)abstract不能与private、static、final或native并列修饰同一种方法
17.抽象类中不一定包含抽象方法,但包含抽象方法的类一定要声明为抽象类。
抽象类本身不具备 实际的功能,只能用于派生其子类,而声明为抽象方法必须必须在子类派生
时被覆盖。所以说一个类被定义为抽象类,则该类就不能用new运算符创建具体实例创建具体
实例对象,而必须通过覆盖的方式实现抽象类中的方法。
18.抽象类可以有构造方法,且构造方法可以被子类的构造方法调用,但构造方法不能被声明为
抽象的。由于不能用于抽象类

总结:今天学习了不可继承类,防止被子类覆盖

学习了object的getName方法返回类名,getClass返回类名,instanceof运算符判断类

抽象类子类不能实现实际功能,由子类实现。可以有构造方法,且被子类构造方法调用,但构造方法不能被声明抽象

四月二十日java基础知识的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  3. Java基础知识系列——String

    最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...

  4. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

  5. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  6. java基础知识梳理

    java基础知识梳理 1 基本数据类型

  7. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  8. Java 基础知识(一)

    Java基础知识篇: 一.关键字解释 1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”.出于对设计或者效率的考虑使用该关键字. final类无法被继承,fina ...

  9. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  10. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

随机推荐

  1. RabbitMq的部署(docker)和操作(python)详解

    一.简介: RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件.消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信. ...

  2. Linux基础知识2

    目录和文件管理 linux以目录形式挂载(通过目录访问存储设备)文件系统,目录结构分层的树形结构. 链接:在共享文件和访问它的用户的若干目录项之间建立联系的方法,包括硬链接和软链接两种方式 linux ...

  3. IDEA2021 在jsp文件中 写out报错

    报错原因: 是因为没有关联好服务器: 解决方案 File --> Project structure --> Modules --> 选中当前的模板 --> Dependenc ...

  4. 学习JavaScript第一周

    三种输出方式,console.log.element.write.alert(): 简单数据类型:数值型.字符串型.布尔类型.undefined.null 复杂数据类型:对象 数据类型的转换:字符串转 ...

  5. Java中接口相关知识

    1.接口 1.1接口概述 接口就是一种公共的规范标准,只要符合标准,大家都可以通用 Java中的接口更多的体现在对行为的抽象 1.2接口的特点 接口用关键字interface修饰,格式:public ...

  6. echarts图表自适应屏幕/浏览器窗口大小

    昨天完成echarts柱状图的生成,突然发现在项目中还有个小缺陷,当柱状图完成渲染之后,放大缩小浏览器窗口echarts柱状图宽度没有随之改变. 接昨天的代码做了小调整: setTimeout(fun ...

  7. 港湾云服务器 香港新世界 节点 centos7.7 64 部署java项目

    开通云服务器 使用Xshell远程登录 XFTP连接服务器查看文件(这个步骤可有可无) yum安装jdk 在linux上使用yum安装是非常粗暴无脑的,但仍然有需要注意的点,不然会掉坑里.这里说一下步 ...

  8. jQuery实现论坛发帖Demo

    目录 效果展示 思路 代码 改进空间 效果展示 思路 主要知识点:运用jQuery对HTML元素节点的操作(append)来添加帖子. 交互设计:用户点击页面上的"论坛发帖"按钮, ...

  9. 微信小程序 入门总结篇

      页面生命周期 Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, ...

  10. Hihocoder 1067

    最近公共祖先二 离线算法 /**/ #include <cstdio> #include <cstring> #include <cmath> #include & ...