类是构造对象的模版或是蓝图(类是抽象概念,对象是类的实例 比如 Book 与具体的某本书 人类与具体的某人),由类构造对象的过程称为创建类的实例。
1.封装是与对象有关的一个重要概念。从形式上说,他只是将数据与行为组织在一起,并且对对象的使用者隐藏了具体的实现逻辑,对象中的数据被称为实例域,操作实例的过程被称为方法。实现封装的关键在于绝对不能让类中的方法直接的访问其他类的实例域。程序仅通过对象的方法与方向数据进行交互。
2.注意:在Java源文件中,一个源文件只能有一个公共类,但是可以有任意数目的非公有类。
3.构造器方法与其他的方法有一个重要的不同。构造器方法总是伴随着new操作符的执行被调用,而不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的。构造器方法有如下的特征:构造器与类同名;每个类可以有一个以上的构造器;构造器可以有0,1,或者多个参数;构造器没有返回值;构造器总是伴随着new操作一起调用。
注意:在所有的方法中不要命名与实例域同名的变量
4.关于实例方法中的隐式参数与显式参数我们不妨来看看下面的例子:hello.test(3); test 有两个参数:第一个参数 hello 就是隐式参数,出现在方法名前面 代表hello 对象;第二个参数3 出现在方法后面的参数列表中的参数。可以看到显式参数是明显列在方法声明中的,这样可以很好的将实例域与局部变量区分开来。
5.⚠️:注意不要编写返回可变对象的访问器方法。如果需要访问一个可变对象的引用,应该首先对它进行clone。对象clone是存在在另外一个地方的对象副本。(如果如果两个对象同样饮用一个可变对象 容易出错)
6.final实例域构建对象时必须初始化,必须确保一个构造器执行之后,这个域的值被设置并且不可以在后续的操作中修改它,因此没有set方法。final关键字如果引用一个可变对象,只是说明不会在指向其他对象,不过被引用的对象可以更改。
7.如果将域定义为static,每个类中只有一个这样的域。而每个对象对于所有的实例域都有一份自己的copy,每个类的所有实例会共享静态域,静态域属于类,而不属于任何独立的对象。
8.静态方法是一种不能操作对象的方法,因为静态方法总是在对象之前就生效了,静态方法与实例方法最明显的区别就是静态方法没有隐式参数this,静态方法只可以访问静态域。在下面两种情况可以使用静态方法:(1)方法不需要访问实例域,其所需参数都是显示参数(2)只需要访问静态域。
9.方法参数:参数传递分为按照值传递和按照引用传递。值传递 方法得到的是传入参数的一个copy,方法不能修改传递给他的参数的内容引用传递 方法接收到的是对象的地址。java程序设计语言默认是按照值传递。
一个方法不能修改一个基本数据类型的参数数值型或布尔型;一个方法可以修改对象参数的状态;方法不可以让对象参数引用一个新的对象。
对象与类
最新推荐文章于 2024-06-11 07:15:00 发布