java学习
Posted gb12138
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习相关的知识,希望对你有一定的参考价值。
2020-05-19 13:52:58
1.类之间的关系
依赖:如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类
聚合:类A的对象包含类B的对象
继承:如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能
2.对象与对象变量,只有赋值的对象变量才能够将对象的相关方法应用上去
3.构造器总是伴随着new操作符的执行被调用,不能够对一个已经存在的对象调用构造器来达到重新设置实力域的目的
4.不要在构造器中定义与实例域重名的局部变量
5.方法的隐式参数是方法名前的对象,方法的显示参数是方法名后面括号的中的数值,在每一个方法中,关键词this表示隐式参数
6.final实例域,构造对象时必须初始化这样的域,也就是说,必须确保在每个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够在对它进行修改
7.final修饰符大都于基本类型域,或不可变类的域(如果类中的每个方法都不会改变其对象,这种类就是不可变的类,例如,string类就是一个不可变的类)
8.对于可变的类
private final StringBuffer evaluations;
final关键字指示表示存储在evaluations变量中的引用不会再指示其他StringBuffer对象,不过这个对象可以更改
9.如果将域定义为static,这个类的所有对象将共享一个静态域,它属于类,而不属于独立的对象
10.静态常量static final修饰,被声明后,无法在修改其值
11.静态方法是一种不能向对象实施操作的方法,换句话说,静态方法没有隐式参数
12.静态方法可以访问自身类中的静态域,它不能够访问自身的实例域,因为它不能够操作对象
13.可以使用对象调用静态方法,但是这种方式很容易造成混淆,原因是调用方法所计算的结果与对象毫无关系,所以不建议使用对象调用静态方法
14.使用静态方法的两种情况
一个方法不需要访问对象状态,其所需参数都是通过显式参数提供
一个方法只需要访问类的静态域
15.工厂方法
localDate类和NumberFormat类使用静态工厂方法类构造对象
为什么NumberFormat类不利用构造器完成这些操作,这里有两个原因:
无法命名构造器。构造器的名字必须与类名相同,但是,这里希望将得到的货币实例和百分比实例采用不同的名字
当使用构造器时,无法改变所构造的对象类型。而Factor方法将返回一个DecimalFormat类对象
16.方法参数
按值调用,表示方法接收的是调用者提供的值
按引用调用,表示方法接收的是调用者提供的变量地址,一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用的值
17.java程序设计语言总是采用按值调用,也就是说,方法得到的是所有参数值的一个拷贝
18.总结java中方法参数的使用情况
一个方法不能够修改一个基本数据类型的参数
一个方法不能让对象参数引用一个新的对象
19.重载,如果多个方法有相同的名字,不同的参数,便产生了重载
方法的签名,要完整的描述一个方法,需要指出方法名以及参数类型,返回类型不是方法签名的一部分,也就是说,不能够有两个名字相同,参数类型也相同却返回不同类型值的方法
20.如果早构造器中没有显式的给域赋初值,那么就会自动的赋为默认值,数值是0,布尔值是false,对象引用为Null;
这是域和局部变量的主要不同点,必须明确的初始化方法中局部变量,但是如果没有初始化类中的域,将会被自动初始化为默认值。
21.如果在编写一个类时没有编写构造器,那么系统就会提供一个无参数的构造器,这个构造器中将所有的实例设置为默认值;如果提供了至少一个构造器,但是没有提供无参数的构造器,则在构造对象时如果没有提供参数就会被视为不合法。
22.可以在类的定义中,直接将一个值赋给任何域,在执行构造器之前,先执行赋值操作;初始值不一定是常量值,可以调用方法对域进行初始化
23.如果构造器的第一个语句形如this(.....),这个构造器将调用同一个类的另一个构造器
以上是关于java学习的主要内容,如果未能解决你的问题,请参考以下文章