2021年1月16~17日 总结 Java方法、引用数据类型、类相关、OO相关概念
进堆的变量,都遵循gc垃圾回收机制
===================
像printf("%d%d%d",a,b,c)这种可变参数的函数怎么写?
如下例中定义了一个能计算任意个参数平均值的方法:
public class Test{ public static double avg(double...a){ double sum = 0; for(int i = 0;i<a.length;i++) { sum+=a[i]; } return sum/a.length; } public static void main(String[] args) { System.out.println(avg(1)); System.out.println(avg(1,2)); System.out.println(avg(1,2,3)); System.out.println(avg(1,2,3,4,5,6,7,8,9,10)); } }
======================
重载只跟参数有关,与返回值无关

=================
测试类、实体类的区别:
暂时理解成:JAVA中的测试类是用来是用来对写好的其他类进行测试的,是main方法所在的类。
===============
new一个对象,如果没有初始值,会设默认值
但是
Car[] cars = new Car[2];只开了空间,但是没有对象,不能理解成创建了两个Car对象的数组
===============================
字符串常量池原本在方法区中,新版本把常量池移到堆中了
===============================
继承中,子类的一个特性:
class People{ String name; int age; byte gender; } class Chinese extends People{ String greeting = "Nihao!"; public void Sayhello(){ System.out.println(greeting); } } class American extends People{ String greeting = "Hello!"; public void Sayhello(){ System.out.println(greeting); } } class NewYorker extends American{ String greeting = "Hey!"; } public class Test{ public static void main(String[] args) { Chinese ZhangSan = new Chinese(); American Jack = new American(); ZhangSan.Sayhello(); Jack.Sayhello(); NewYorker Jim = new NewYorker(); Jim.Sayhello(); //这里输出Hello
} }
发现:子类继承父类的方法,并且不重写继承得到的方法,调用该方法,输出的并不是自己的成员变量,而是父类的成员变量。
============================================================================
子类方法重写父类方法时,权限必须大于等于父类方法权限,否则会无法编译:

java: ShanDongRen中的Sayhello()无法覆盖Chinese中的Sayhello(),正在尝试分配更低的访问权限; 以前为public
=========================================================================
抽象方法不能写方法体:

===================================================================
@Override
类似于有功能的注释,一般写在覆盖父类同名方法的子类方法前面,不仅有提示的功能,也可以让编译器检查规范
=================================================================
接口可以理解成多个类的公共规范,接口中可以包含常量、抽象方法、默认方法、静态方法,接口的实现类必须包含接口中所有的抽象方法(这一点最能体现:接口是用来规范类的)。
==================================================================
下面这个ER图可以展示目前学到的JAVA面向对象中的概念之间的联系:


浙公网安备 33010602011771号