烦了就吃饭去

面向对象---2

变量的值传递:
规则:不管时基本数据类型,还是引用数据类型,变量本身存储什么值,就传递什么值。

形参:声明方法时,小括号内定义的变量,称为形参
实参:调用方法时,给形参赋的值。

方法的参数传递机制:值传递!!!
》如果形参是基本数据类型,则将基本数据变量存储的数据传递给形参(参数列表中的参数)
》如果形参是引用数据类型,则将引用数据类型变量的地址值赋给形参。

 

 

递归:
一个方法体内调用它自身;
递归方法包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。

面向对象的特征一:封装与隐藏
1.封装性设计的由来
创建了类的对象以后,我们可以使用“对象.属性”方式调用或者设置属性的值。在赋值时,要求考虑到考虑到变量的数据类型和储值范围。但是我们在实际问题中,需要额外的给属性赋值时,加入限制条件。这些限制条件不可能在变量声明时做添加,我们只能通过在方法中给变量赋值,同时添加限制条件。我们应该禁止客户通过“对象.属性”的方式调用和改变属性的值。所以需要我们添加设置属性值以及获取属性值的两个方法。
2.狭义上的封装性体现:
》将类的属性私有化,同时提供公共的get和set方法来获取和设置此属性。
3.广义上的封装性体现:
》Java规定的4中权限修饰:private《default(缺省)《protected《public,修饰相应地结构,使这个结构被调用时,可见性的大小。
4中权限可以修饰类内部的成员:属性、方法、构造器、内部类
类本身可以使用2种权限修饰:缺省、public

同一个包下不能定义相同的类。

任何地方:指本项目工程内。

类的成员之三:构造器(构造方法)Constructor
1.构造器的作用:创建类的对象;初始化对象的属性。
2.说明:
》如果我们没有显式的提供类的构造器的话,则系统会给一个类提供默认的构造器,无参数的。
》如果我们显式的声明类的构造器的话,格式为:权限修饰符 类名(形参列表){}
》同一个类中的多个构造器之间构成重载。
》如果我们显式的提供了类的构造器,则系统不再提供默认的空参的构造器。
》Java的类中一定存在构造器。

类的属性的赋值的先后顺序:
》属性的默认初始化
》属性的显式初始化
》构造器中给属性初始化
》通过“对象.方法”或“对象.属性”的方法,给属性赋值。
说明:上述的操作前三种在执行中只调用依次,最后一个可以根据用户需求多次调用。

封装性思想具体体现的代码实现:
》私有化类的属性,提供公共的set和get方法取设置和访问。
》类中提供私有的方法,表面此方法只能在类内部被调用。
》如果此类只希望在本包中被调用,则可声明为缺省状态。
》单例模式。

关键字:this的使用
1.理解为:当前对象或当前正在创建的对象。
2.适用范围:this可以使用在方法或构造器的内部。
3.可以调用的结构:属性、方法;构造器
4.在方法种使用this:
我们可以在方法内,调用当前类的属性或方法,属性或方法前可以使用“this.”的方式,表明调用的是当前对象的属性或方法,通常情况下,我们都习惯胜省略此this关键字。
但是,如果方法的形参和类的属性名相同了,则必须使用“this.变量”的方式,表明我们调用的变量是当前对象的属性,而非形参。
5.在构造器中使用this:
我们可以在构造期内,调用当前类的属性或方法,属性或方法前可以使用“this.”的方式,表明当前调用的是当前正在创建的对象的属性或方法,通常情况下,我们都习惯省略此this关键字。
但是,如果构造器的形参和类的属性名相同,则必须使用“this.变量”的方式,表明我们调用的变量是当前正在创建的对象的属性,而非形参。
6.this来调用构造器:
》我们可以在构造器中使用“this(形参列表)”方式,调用当前类中的指定构造器。
》构造器中不可以使用“this(形参列表)”方式调用本身的构造器。
》如果类中声明了n个构造器,则最多可以有n-1个构造器中使用了“this(形参列表)”方式调用其他构造器。
》规定:要求将“this(形参列表)”声明在构造器的首行。
》一个构造器中最多声明一个“this(形参列表)”。

关键字:package和import两个关键字的使用:

1.package包
2.作用:使用包的概念来区分不同类的功能。换句话说,将相同结构或类型的类放在相同的包中,便于管理。
3.package声明在源文件的首行。
4.命名规范:xxx.uuu.iii
5.每一个.代表一层文件目录。

》import
1.import:导入
2.我们可以在源文件中使用import显式的导入指定包下的类或接口
3.声明位置:通常声明在package包声明和类文件之间。
4.如果使用的类或接口是当前包下的,则可以省略导包。
5.如果使用的类或接口是java.lang包下的,则也可以省略import的操作。
6.如果需要导入多个结构,则并列声明即可。
7.可以使用“包名1.*”的方式,导入包名1下的所有结构。
8.如果类中出现了不同包下的同名的类,则至少有一个需要使用全类名的方式进行调用,即“包名.类名”。
9.import static:导入指定包下的指定类或接口中的静态结构。
10.如果导入了a包下的所有结构,则如果需要导入a包的子包的结构的话,仍需要import操作。

 

posted on 2020-05-05 20:56  烦了就吃饭去  阅读(117)  评论(0编辑  收藏  举报

导航