当前位置: 首页 > news >正文

应用宝下载网站优化的代码

应用宝下载,网站优化的代码,电子商务公司注册资金,营销咨询公司目录 面向对象基础 面向对象与面向过程的区别 创建一个对象用什么运算符,对象实体与对象引用的区别 对象相等和引用相等的区别 构造方法的特点,是否可被重写? 面向对象三大特征 封装 继承 多态 接口和抽象类的共同点和区别 深拷贝…

目录

面向对象基础

面向对象与面向过程的区别

创建一个对象用什么运算符,对象实体与对象引用的区别

对象相等和引用相等的区别

构造方法的特点,是否可被重写?

面向对象三大特征

封装

继承

多态

接口和抽象类的共同点和区别

深拷贝和浅拷贝

引用拷贝


参考:Java基础常见面试题总结(中) | JavaGuide

面向对象基础

面向对象与面向过程的区别

面向过程编程(POP)和面向对象编程(OOP)的主要区别在于解决问题的方式不同:

  • POP:面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题

  • OOP:面向对象会先抽象出对象,然后用对象执行方法的方式解决问题

相较于POP,OOP开发的程序拥有下面这些特点:

  • 易维护:由于良好的结构和封装性,OOP程序通常更易维护

  • 易复用:通过继承和多态,OOP 设计使得代码更具复用性,方便扩展功能。

  • 易拓展:模块化拓展使得系统拓展更容易,灵活

创建一个对象用什么运算符,对象实体与对象引用的区别

创建对象使用new运算符,new创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)

  • 一个对象引用可以指向0或1个对象

  • 一个对象可以被多个引用指向

对象相等和引用相等的区别

  • 对象相等一般比较的是内存中存放的内容是否相等

  • 引用相等一般比较的是他们指向的内存地址是否相等

String str1 = "hello";String str2 = new String("hello");String str3 = "hello";// 使用 == 比较字符串的引用相等System.out.println(str1 == str2);System.out.println(str1 == str3);// 使用 equals 方法比较字符串的相等System.out.println(str1.equals(str2));System.out.println(str1.equals(str3));
 falsetruetruetrue

构造方法的特点,是否可被重写?

构造方法特点:

  • 名称与类名相同

  • 没有返回值

  • 自动执行:在生成类的对象时,构造方法会自动执行,无需显示调用

构造方法不能被重写,但可以被重载。因此,一个类中可以有多个构造方法,这些构造方法可以具有不同的参数列表,以提供不同的对象初始化方式

面向对象三大特征

封装

封装,即把一个对象的状态信息(属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。为外界提供一些可以被外界访问的方法来操作属性

继承

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以使用父类的功能,但不能选择性地继承父类。

通过继承,可以提高代码的复用性,程序的可维护性

关于继承:

  • 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和私有方法子类无法访问,只是拥有

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行拓展

  • 子类可以用自己的方式实现父类的方法

多态

一个对象拥有多种表现形式,具体表现为父类的引用指向子类的实例。父类引用可以指向子类实例,这是因为子类具备父类中所有的特性(属性和方法)。通过父类引用,能够调用父类中定义的方法,但是无法直接调用子类特有的方法。

子类引用无法指向父类对象

class Parent {public void parentMethod() {System.out.println("Parent method");}}​class Child extends Parent {public void childMethod() {System.out.println("Child method");}}​public class Main {public static void main(String[] args) {Parent parent = new Child(); // 父类引用指向子类实例parent.parentMethod();       // 调用父类方法// parent.childMethod();     // 编译错误,父类引用无法访问子类特有方法​// 如果需要调用子类特有方法,可以进行强制类型转换Child child = (Child) parent;child.childMethod(); // 调用子类方法}}
 ​

多态特点:

  • 对象类型和引用类型之间具有继承/实现的关系

  • 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定

  • 多态不能调用“只在子类存在但是在父类不存在”的方法

  • 如果子类重写了父类的方法,真正执行的是子类重写的方法,如果子类没有重写父类的方法,执行的是父类的方法

 class Animal {public void makeSound() {System.out.println("Some generic animal sound");}}​class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}}​class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("Cat meows");}}​class Bird extends Animal {@Overridepublic void makeSound() {System.out.println("Bird chirps");}}​public class Main {public static void makeAnimalSound(Animal animal) {//animal调用哪个类的方法,在运行时才确定animal.makeSound(); // 调用子类重写的方法}​public static void main(String[] args) {makeAnimalSound(new Dog()); // 输出:Dog barksmakeAnimalSound(new Cat()); // 输出:Cat meowsmakeAnimalSound(new Bird()); // 输出:Bird chirps}}
 ​

接口和抽象类的共同点和区别

接口和抽象类的共同点

  • 实例化:接口和抽象类均不能被实例化,必须被实现或被继承后才能创建具体的对象

  • 抽象方法:接口和抽象类都可以包含抽象方法。抽象方法没有方法体,必须在子类或实现类中实现

接口和抽象类的区别:

  • 设计目的:接口主要用于对类的行为进行约束,实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调所属关系

  • 继承和实现:一个类只能继承一个父类,但一个类可以实现多个接口,一个接口也可以实现多个接口

  • 成员变量:接口中的成员变量只能是public static final类型的,不能被修改且必须有初始值。抽象类的成员变量类型可以任意,可以在子类中被重新定义或赋值

  • 方法:抽象类中可以包含抽象方法和非抽象方法。对于接口,Java8之前,接口中的方法默认是public abstract,也就是只有方法声明,从Java8开始,可以在接口中定义default方法和static方法,Java9起,接口可以包含private方法

Java8引入的default方法用于提供接口方法的默认实现,可以在实现类中被覆盖

接口中static方法无法在实现类中被覆盖,static方法通常用于定义一些通用的,与接口相关的工具方法,一般很少用

Java 9 允许在接口中使用 private 方法。private方法可以用于在接口内部共享代码,不对外暴露

深拷贝和浅拷贝

  • 浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),如果对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是拷贝对象和原对象共用一个内部对象

  • 深拷贝:深拷贝会完全复制整个对象,包括这个对象包含的内部对象

引用拷贝

引用拷贝就是两个不同的引用指向同一个对象

shallow&deep-copy

http://www.yayakq.cn/news/462084/

相关文章:

  • 深圳做网站的人广州建设工程交易中心董事长
  • 临沂专业网站制作公司深圳网站建设 贴吧
  • 商务网站建设包含了网站可以做系统吗
  • vps 可以做多个网站吗如何仿造一个网站做
  • jsp网站建立17zwd一起做网店
  • 济南网站建设与维护网站建设时间规划表
  • 农村建设开发有限公司网站腾讯云 云服务器
  • 青岛网站设计怎么选郑州网络推广报价
  • 做电影网站挣钱吗谷歌平台推广
  • 企业网站建设软件免费做苗木的网站
  • 东莞网站建设免费服务器北京seowyhseo
  • 建设网站需要的关键技术docker run wordpress
  • 石家庄住房和城乡建设部网站湖南外贸网站建设
  • 雄安移动网站开发商违约延期交房可以退房吗
  • html5做的网站有哪些上高县建设局网站
  • 人力资源三网站建设制作h5用什么软件比较好
  • 九星市场做网站网络营销研究现状文献综述
  • 深圳市建seo sem sns的区别
  • 传奇三端互通新开服网站如何编程做网站
  • 房地产项目网站建设泰安东平房产信息网
  • 宜昌建网站176复古传奇网页版
  • 郓城住房和城乡建设局网站哪里有做标书
  • 清华大学绿色大学建设网站视频网站建设需要多少钱
  • 商场网站设计网页设计与网站建设书
  • 怎么让网站快速收录wordpress链接替换
  • 网站结构有哪些类型东莞哪家网站建设好
  • 西城专业网站建设公司哪家好wordpress的静态数据库
  • 做网站需要的软件专业网站设计建设服务
  • 做数码相的网站数据库如何导入wordpress
  • 如何申请个人网站域名广元如何做百度的网站