阿里云服务器可以做下载类网站吗,网络营销策略的概念,买了一个域名如何做网站,做食品网站【八股文】面向对象基础
面向对象和面向过程的区别
面向过程把解决问题的过程拆成一个个方法#xff0c;通过一个个方法的执行解决问题。面向对象会先抽象出对象#xff0c;然后用对象执行方法的方式解决问题。
创建一个对象用什么运算符?对象实体与对象引用有何不同?
…【八股文】面向对象基础
面向对象和面向过程的区别
面向过程把解决问题的过程拆成一个个方法通过一个个方法的执行解决问题。面向对象会先抽象出对象然后用对象执行方法的方式解决问题。
创建一个对象用什么运算符?对象实体与对象引用有何不同?
new 运算符new 创建对象实例对象实例在堆内存中对象引用指向对象实例对象引用存放在栈内存中。
对象的相等和引用相等的区别
对象的相等一般比较的是内存中存放的内容是否相等。引用相等一般比较的是他们指向的内存地址是否相等。 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));
false
true
true
true 运算符比较的是字符串的引用是否相等。equals 方法比较的是字符串的内容
如果一个类没有声明构造方法该程序能正确执行吗?
构造方法是一种特殊的方法主要作用是完成对象的初始化工作。如果一个类没有声明构造方法也可以执行因为一个类即使没有声明构造方法也会有默认的不带参数的构造方法。如果我们自己添加了类的构造方法无论是否有参Java 就不会添加默认的无参数的构造方法了。我们一直在不知不觉地使用构造方法这也是为什么我们在创建对象的时候后面要加一个括号因为要调用无参的构造方法。如果我们重载了有参的构造方法记得都要把无参的构造方法也写出来无论是否用到因为这可以帮助我们在创建对象的时候少踩坑
构造方法有哪些特点是否可被 override?
名字与类名相同。没有返回值但不能用 void 声明构造函数。生成类的对象时自动执行无需调用。
面向对象三大特征
封装
封装是指把一个对象的状态信息也就是属性隐藏在对象内部不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。就好像我们看不到挂在墙上的空调的内部的零件信息也就是属性但是可以通过遥控器方法来控制空调。如果属性不想被外界访问我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法那么这个类也没有什么意义了。就好像如果没有空调遥控器那么我们就无法操控空凋制冷空调本身就没有意义了当然现在还有很多其他方法 这里只是为了举例子。
继承
不同类型的对象相互之间经常有一定数量的共同点。例如小明同学、小红同学、小李同学都共享学生的特性班级、学号等。同时每一个对象还定义了额外的特性使得他们与众不同。例如小明的数学比较好小红的性格惹人喜爱小李的力气比较大。继承是使用已存在的类的定义作为基础建立新类的技术新类的定义可以增加新的数据或新的功能也可以用父类的功能但不能选择性地继承父类。通过使用继承可以快速地创建新的类可以提高代码的重用程序的可维护性节省大量创建新类的时间 提高我们的开发效率
多态
对象类型和引用类型之间具有继承类/实现接口的关系引用类型变量发出的方法调用的到底是哪个类中的方法必须在程序运行期间才能确定多态不能调用“只在子类存在但在父类不存在”的方法如果子类重写了父类的方法真正执行的是子类覆盖的方法如果子类没有覆盖父类的方法执行的是父类的方法。
接口和抽象类有什么共同点和区别 都不能被实例化。 都可以包含抽象方法。 都可以有默认实现的方法Java 8 可以用 default 关键字在接口中定义默认方法。 接口主要用于对类的行为进行约束你实现了某个接口就具有了对应的行为。 抽象类主要用于代码复用强调的是所属关系。 一个类只能继承一个类但是可以实现多个接口。 接口中的成员变量只能是 public static final 类型的不能被修改且必须有初始值而抽象类的成员变量默认 default可在子类中被重新定义也可被重新赋值。
深拷贝和浅拷贝区别了解吗什么是引用拷贝
浅拷贝浅拷贝会在堆上创建一个新的对象区别于引用拷贝的一点不过如果原对象内部的属性是引用类型的话浅拷贝会直接复制内部对象的引用地址也就是说拷贝对象和原对象共用同一个内部对象。深拷贝深拷贝会完全复制整个对象包括这个对象所包含的内部对象。引用拷贝就是两个不同的引用指向同一个对象。