一、继承体系的老祖宗是Object类。(Object类是所有类的父类)

当我们不希望在程序中某些类被继承,某些方法被重写,某些数据被修订。就是final关键字闪亮登场的时候了。

一个类没有使用extends关键字明确标识继承关系,则默认继承Object类(包括数组)

Java中每个类都可以使用Object中定义的方法。

二、Object.equals(); 之前判断的是两个引用是否一致;

String类重写了equals方法,判断了两个字符串的值是否一致。

测试类的main方法里新建两个Animal实例,用equals作比较,最后打印false

Animal Animala = new Animal();

Animal Animalb = new Animal();

Animala.setName("花花");

Animalb.setName("花花");

System.out.println(Animala.equals(Animalb)); //false

在用equals方法比较两个字符串,结果就是true

String aString = new String("花花");

String bString = new String("花花");

System.out.println(aString.equals(bString)); // true

在animal类中重写equals方法。

public boolean equals(Object obj) {

if(obj==null) {

return false;

}

Animal tempAnimal = (Animal)obj;

if(this.getName().equals(tempAnimal.getName())){

return true;

}else {

return false;

}

}

在执行如下代码就是true.

Animal Animala = new Animal();

Animal Animalb = new Animal();

Animala.setName("花花");

Animalb.setName("花花");

System.out.println(Animala.equals(Animalb)); //true

Java.lang.NullPointerException 空指针异常。

如下,打印实例对象,会默认调用toString方法,所以调了没调结果都一样。包+类名+@+内存位置(通过hash算法去得到的)。

Animal Animala = new Animal();

System.out.println(Animala); // com.immoc.animal.Animal@7852e922

System.out.println(Animala.toString()); // com.immoc.animal.Animal@7852e922

三、final关键字

1.首先将final加到Animal类前面(或后面,两者顺序可以互换)。会发现继承Animal的子类全都报错了。

final class:该类没有子类 public final class\ final public class

final 方法:子类对象不能重写父类的某个方法,但这个方法依然可以被子类继承使用。

final添加到方法中的局部变量:再具体使用之前进行赋值即可,一旦赋值不允许被修改。感觉类似js的const。

final 方法中的局部变量:只要在具体被使用之前进行赋值即可,一旦赋值不允许被修改类中成员属性:赋值过程:1、定义直接初始化 2、构造方法 3、构造代码块。

当final修饰的变量是引用类型的时候,在实例化之后不允许修改引用地址。但对象里的属性值是可以修改的。

用static和final修饰的变量代表,全局静态不可修改的变量。(只需要加载一次,不需要之后修订的内容可以通过这两个关键字的内容来进行修饰)。

public static final int temp = 12;

四、注解

JDK1,5版本引入的一个新特性

可以声明在包、类、属性、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。相当于一个标记。

@Override标识该方法重写了父类的eat方法。

注解:

按照运行机制分:

①源码注解:@Override 源代码当中有用,编译成class文件就没用了。

②编译时注解:源码和class文件都存在。

③运行时注解: 在运行阶段还起作用,甚至会影响运行逻辑的注解。

按照来源分:

①来自JDK的注解。

②来自第三方的注解。

③我们自己定义的注解。

五、父类方法。

public Animal create() {

return new Animal();

}

子类重写create方法可以这么写:

@Override

public Dog create() {

// TODO Auto-generated method stub

return new Dog();

}

子类重写父类方法的时候,向下兼容,可以返回父类实例,也可以返回子类实例。

java中object类怎么赋值_Java面向对象之Object类相关推荐

  1. java中date类型如何赋值_Java 中的类型传递问题解惑

    点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 来源: https://blog.biezhi.me/2018/11/java-pass-by-value.html 我之 ...

  2. java中为final变量赋值的几种方式

    java中为final变量赋值的几种方式 前言 使用final修饰变量,很多人第一时间想到的就是不可变.然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修 ...

  3. java中的包如何定义_java中包的定义与使用

    包的本质就属于一个文件夹,用来解决类名称重名的问题. 包的定义:在源文件首行使用package包名称: package www.myfile.java; public class Test{ publ ...

  4. Java中long类型直接赋值大数字的问题

    原文出处: Java中long类型直接赋值大数字的问题 作者: Jet Mah from Java堂 声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处.作者信息及此声明! 在J ...

  5. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定 2016年05月11日 11:20:08 阅读数:6336 一. 计算机的小数计算一定范围内精确,超过范围只能 ...

  6. java怎么给类中的私有变量赋值_Java核心技术笔记分享------第二章 类与对象

    对象与类 一.面向对象思想的概述 1>面向对象与面向过程: 二者都是一种思想,面向对象是相对于面向过程而言的.面向过程强调的是功能行为.面向对象,将功能封装进对象,强调具备了功能的对象. 面向对 ...

  7. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...

    不知不觉中,千锋重庆学习Java已经半个月了,同学们感觉受益匪浅.有一个同学本来是软件编程专业基础却是意外的差,什么标识符.变量的命名规则.方法的定义.数组.面向对象的封装.继承.多态,还有接口.抽象 ...

  8. Java如何扑克牌给扑克牌赋值_JAVA学习前十天:小结、面向对象之”扑克牌“例子...

    2016年4月26号正式步入JAVA学习课堂,学习了第一节JAVA课程,由于以前有C语言基础,所以课程有点快! 第一天:学习了教材的第一部分,第一部分总共两章,分别是JAVA简介和JAVA基础语法. ...

  9. java里面比较重要的东西_Java面向对象程序设计中很重要的一些东西

    面向对象具有多方面的吸引力.对于管理人员,它实现了更快和更廉价的开发与维护过程.对于分析与设计人员,能生成清晰.易于维护的设计方案.对于程序开发人员,对象的理解又是如此浅显.此外,面向对象的工具以及类 ...

最新文章

  1. 模拟人脑项目彻底宣告失败:耗资10亿欧,10年前轰动全球,如今死得悄无声息...
  2. freemarker模板文件中文本域(textarea)的高度自适应实现
  3. 实战并发编程 - 05等效不可变对象CopyOnWriteArrayList适用场景剖析_写时复制COW
  4. slq2000数据库升级到sql2012
  5. springboot接收浏览器发送delete请求( method not allowed 405解决方法)
  6. C++从入门到放肆!
  7. 【纪中集训】2019.08.13【省选组】模拟3
  8. sklearn一般流程
  9. java 读取本地文件_java 读取本地文件实例详解
  10. MQ 消息队列时如何确保消息不丢失
  11. 如何关闭搜狗输入法软键盘的热键
  12. bootstrap黑色酷炫IT行业个人博客模板
  13. web期末网站设计大作业:动漫网站设计——龙猫(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 动漫漫画网页设计...
  14. 【echarts高级用法】在地理坐标系中镶嵌柱状图,在加上时间轴让图动起来
  15. 机器学习: 决策数与随机森林
  16. [Russell Han] 24 | 数据库基础 | 关系模型
  17. 三星笔记本bios设置里找不到U盘启动盘的解决方法
  18. mysql查询1万条数据要1秒钟_SQL查询效率:100万数据查询只需要1秒钟
  19. 同源序列比对和进化树的绘制(转)
  20. 开源的AI算法可以进行物体识别,动物识别

热门文章

  1. 《 Mind Map Book 思维导图中文版》读书笔记
  2. mp3转换wav文件_如何将WAV文件转换为MP3
  3. creo matlab,Creo与matlab接口配置
  4. 跳一跳——电脑能做的事就不要人工来做啦
  5. 《代码规范》如何写出干净的代码(四)对象和类
  6. qemu声卡模拟原理-基本使用方法
  7. 铲屎官们注意了:宠物保险已经上市,赶快来了解下
  8. USB PC to PC通讯、USB互联线API简介.doc
  9. 【选址问题】二进制灰狼算法解决无容量选址问题【Matlab】
  10. UES:地域有界,资产无国界