JAVA面试-语法基础- A01

这篇具有很好参考价值的文章主要介绍了JAVA面试-语法基础- A01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面向对象

面向对象特性

封装

利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分隔的独立实体,数据被保护在抽象数据类型的内部,尽可能的隐藏内部的细节,只保留一些对外的接口,用户无需对对象的内部了解过多,但是可以通过对象提供的接口来访问对象。

优点 \color{#FF00FF}{优点} 优点

  • 减少耦合:独立开发,测试,优化,理解和修改
  • 减轻维护的负担:可以更加容易被程序员理解,并且在调试的时候可以不影响其他的模块
  • 提高软件的重用性
  • 降低来构建大型系统的风险:即使整个系统不可用,但是其他的模块是可以使用的

下面People类封装nameagesex等属性,外界只能通过get()方法获取其相关对象的属性,但是相应的其中wealth属性是无法获取的,但是这个属性是可以通过owner来获取的

package com.Jragon.Base.object;

/**
 * Created by jdx on 2023/5/18 下午12:05
 */
public class People {
    private String name;
    private int wealth;
    private int age;
    private int sex;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getSex() {
        return sex == 0 ? "man" : "woman";
    }

    public void owner() {
        if (18 <= wealth && wealth <= 28) {
            System.out.println("You who have youth are the richest!!!");
        } else {
            System.out.println("Don't waste your time in vain!!!");
        }
    }
}

继承

继承体现了 IS-A 的关系,例如 DogAnimal就是一种 IS-A 的关系,因此Cat可以继承 Animal,从而获得 Animal 的对应属性。注意:继承应该遵循里式替换原则,子类对象必须能够替换掉所有的父类对象。

对于父类引用子类对象称为向上转型的深入理解

Dog 可以当做 Animal 来使用,也就是说可以使用 Animal 引用 Dog 对象。父类引用指向子类对象称为 向上转型 。

Animal animal = new Dog();

多态

多态运行时有三个条件:

  • 继承
  • 重写
  • 向上转型

计算类

  1. 4*0.1 == 0.4 将会返回true or false
  • false,因为有一些浮点数并不能精确的反馈出来
  1. a=a+b和a+=b的区别
  • +=隐式的将操作结果先进行类型准换,然后在对结果进行计算,这是区别于a=a+b的根本

基本面试相关问题

1、对equals()和hashCode()的理解

  • 在重写equals方法的时候需要重写hashCode()方法,原因就是有强制规范,在此过程中需要注意不同的对象可能会有相同的hashCode但是相同的对象就一定不会有相同的HashCode 这是强制规范所定

2、String、StringBuffer和StringBuilder的区别

  • 从适用范围角度来看,String对象是不可变的,但是StringBuffer和StringBuilder是可变字符串操作,对于String来说,他是final修饰的、每次对对象的操作都会生成一个新的对象,但是对于另外俩个来说他们本身是对对象进行操作,所以在对字符进行频繁操作的时候可以考虑抛弃String防止对系统性能进行产生影响
  • 从线程安全角度来说:StringBuilder回更快但是这就意味着他的安全性能比较低,因为从线程安全角度来看确实如此

3、this()&super()在构造方法中的区别

  • 本质来说this是指向对象的指针(假想),super就是一个关键字
  • 调用super方法来说,必须将super放在第一行否则idea将会飙红,象征编译不通过
  • this和super不能在同一个构造器中
  • 适用以上this和super方法时,不可用在static环境中

4、接口和抽象类的区别文章来源地址https://www.toymoban.com/news/detail-449638.html

  • 抽象类中可以有构造方法,接口没有构造方法(java8以后接口也是可以有构造方法的【default 关键字】)
  • 抽象类中可以有普通成员变量,接口没有普通成员变量
  • 一个子类可以智能继承一个抽象类,但是可以实现多个接口

到了这里,关于JAVA面试-语法基础- A01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVASE】面向对象程序三大特性之一( 封装)

    ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉n 🍎个人主页:再无B~U~G-CSDN博客 目标: 1.包的使用 2.static的使用 3. 代码块概念以及分类 面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为

    2024年04月17日
    浏览(50)
  • 01 java 学习 数据类型、基础语法、封装、继承、多态、接口、泛型、异常等

    目录 环境搭建和基础知识  什么是JRE: 什么是JDK: 基础数据类型  分支选择if else switch和c一毛一样 for和while循环还有数组基本和c一样 封装 函数调用、传参、命名规范、数组新命名规范 java输入Scanner scanner = new Scanner(System.in); 类的创建和使用以及封装修饰符  构造方法:含义、

    2024年02月11日
    浏览(42)
  • 【Java面试题】Java基础——面向对象

    重载和重写的区别★★★ 重载(Overloading)和重写(Overriding)都是Java中面向对象编程的特性,它们都可以让子类继承父类的方法。但是它们之间有一些重要的区别: 定义方式: 重载(Overloading): 在同一个类中 ,可以有 多个方法名相同但参数列表不同的方法 。当调用一个方法时,

    2024年02月11日
    浏览(38)
  • 7-1 jmu-Java-03面向对象基础-01-构造方法与toString

    String name、int age、boolean gender、int id 所有的变量必须为私有(private)。 注意:属性顺序请严格按照上述顺序依次出现。 分析: 定义一个Person的类,并在类中包含 String name 、 int age 、 boolean gender 、 int id ,并且定义为私有属性( private ) 1.编写无参构造函数:   打印\\\"This i

    2024年02月06日
    浏览(36)
  • 【python基础语法十】面向对象

    对类中成员属性和方法的保护,控制外界对内部成员的访问,修改,删除等操作 对象的操作 类的操作 如何在类外访问私有成员 使用类对象删除相应的成员 单继承 多继承 菱形继承 (钻石继承) 内置函数 issubclass 与 isinstance issubclass 判断类的子父关系(应用在类与类之间) isinstance 判

    2024年02月02日
    浏览(41)
  • Java面向对象01——类与对象

    大家好,我是白夜,今天和大家聊聊类与对象 面向过程编程 C 语言就是面向过程编程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 面向对象编程 JAVA 是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 举

    2024年04月08日
    浏览(46)
  • Java面向对象封装

    目录 封装的概念 封装具体实现步骤 示例代码如下 封装具体语法 Java封装是一种面向对象的编程方法,它的主要思想是将类的内部细节(包括数据和方法)隐藏起来,对外只提供公共的访问接口,从而保证了程序的安全性和稳定性。 1、声明类的成员变量时,使用private

    2024年02月03日
    浏览(46)
  • 【java】面向对象三大特性之多态

            俗话说的好,“一龙生九子,九子各不同”,这句话就蕴含了面向对象三大特性之一的多态的思想。那么多态具体有什么特点呢,就由博主来带大家梳理一下吧🤔 目录 一、什么是多态 二、重写 三、向上转型和向下转型 1、向上转型 2、向下转型 四、多态的优缺点

    2024年03月15日
    浏览(76)
  • Java面向对象03——三大特性之继承

    继承就是 Java 允许我们用 extends ,让一个类与另一个类建立起一种父子关系; 被继承的类称为父类(基类、超类),继承父类的类都称为子类(派生类), 当子类继承父类后,就可以直接使用父类公共的属性和方法了 当子类继承父类后,就可以直接使用父类公共的属

    2024年04月27日
    浏览(45)
  • Java面向对象 - 封装、继承和多态

    目录 第1关:什么是封装,如何使用封装 第2关:什么是继承,怎样使用继承 第3关:super的使用 第4关:方法的重写与重载 第5关:抽象类 第6关:final的理解与使用 第7关:接口 第8关:什么是多态,怎么使用多态 Java_Educoder

    2024年02月07日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包