首页 > 编程语言 > 详细

java类和对象面经

时间:2021-04-11 21:44:06      阅读:19      评论:0      收藏:0      [点我收藏+]

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

面向过程:优点:性能更好,广泛应用于单片机,嵌入式,Linux等需要注重性能的场景。原因是面向对象的语言需要将类实例化,资源消耗比较大,所以在注重性能的场景下一般使用面向过程的语言

面向对象:优点:易复用,易维护,易扩展。因为面向对象又封装,继承,多态等特性,所以可以设计出低耦合度的程序,使得维护和扩展更加方便,同时面向对象更容易复用,编写一个类可以实现多个对象。

 

当然,java不一定性能就一定比面向过程的语言性能差。但是由于语言特性,java不会直接编译成机器语言,而面向过程的语言会直接编译成机器能识别的语言,所以一般来说面向过程的语言性能会更好一些,当然并不绝对!


 

构造器是否可以被Override

构造器不可以被Override,但是可以被重载。

对构造器Override也没有意义,因为不会有两个类有同样的类名。


成员变量和局部变量的区别在哪里

1.从语法上:

  成员变量:定义在类内,可以被public,private,protected,static等修饰符修饰。

  局部变量:定义在代码块或者方法内,不可以被除了final以外的修饰符修饰。

2.从内存上:

  成员变量:如果成员变量是被static修饰的,那么这个成员变量是属于类的,如果被别的修饰符修饰,这个成员变量是属于对象的。对象被存储在堆内存中。

  局部变量:局部变量被存储在栈内存中。

3.从生存时间上:

  成员变量:成员变量是属于对象的,和对象同生死。

  局部变量:局部变量在他所在的函数或者代码块执行完毕后自动死亡。

4.从初值上:
  成员变量:成员变量如果没有被赋予初值,那么会自动被赋予相对应的基本数据类型的初始值。

  局部变量:局部变量不会被自动赋值。

  一种情况例外:被 final 修饰的成员变量也必须显式地赋值


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

创建对象用new运算符,新建对象实例。一个实例对象可以被无数个引用对象引用。一个引用对象只能同时引用0或1个实例对象。


构造方法有哪些特性

1.构造方法没有返回值,也不能用void修饰

2.名字必须与类同名,可以重载。

3.构造方法在创建对象实例时调用


在调用子类构造函数前会调用父类构造函数的原因?

子类继承父类的部分内容,构造父类的原因是要为子类的一系列活动做铺垫,帮助子类做初始化工作。


为什么要在java中定义一个什么都不做的构造函数?

我们通常会自己写一个构造函数,当我们写了构造函数以后,java就不会为类创造一个无参构造函数了。

但是,当我们写一个子类继承这个父类的时候,如果没有用super(....)调用父类的构造方式的话,java会自动调用父类的无参构造函数。但是我们已经写了一个构造函数了,此时子类如果不写super(....),java就找不到一个父类的无参构造函数了,于是程序编译出错。为了避免这种错误,我们就敬长在类中定义一个什么都不做的构造函数。

java类和对象面经

原文:https://www.cnblogs.com/wangqianming12138/p/14644720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!