java对象的三⼤要素_java-⾯向对象(⼀)⼀、Java⾯向对象学习的三条主线:
1.Java类及类的成员:属性、⽅法、构造器;代码块、内部类
2.⾯向对象的三⼤特征:封装性、继承性、多态性。(抽象性)
3.其他关键字:this、super、static、final、abstract、interface、package、import等。
⼆、“⼈把⼤象装进冰箱”
1.⾯向过程:强调的时功能⾏为,以函数为最⼩单位,考虑怎么做。
2.⾯向对象:强调具备了功能的对象,以类/对象为最⼩单位,考虑谁来做。
三、⾯向对象的两个要素:
类:对⼀类事物的描述,是抽象的、概念上的定义
对象:是实际存在的该类事物的每个个体,因⽽也称为实例(interface)
⼆者关系:对象,是由类new出来的,派⽣出来的。
⾯向对象程序设计的重点是类的设计
设计类,就是设计类的成员。
属性 = 成员变量 = field = 域、字段
⽅法= 成员⽅法 = 函数 = method
创建类的对象 = 类的实例化 = 实例化类
四、⾯向对象思想落地的实现
1.创建类,设计类的成员
2.创建类的对象
3.通过“对象.属性”或“对象.⽅法”调⽤对象结构
属性(成员变量) vs 局部变量
1.相同点:
定义变量的格式:数据类型 变量名 = 变量值
先声明,后使⽤
变量都有其对应的作⽤域
2.不同点:
在类中声明的位置不同
属性:直接定义在类的⼀对{}内
局部变量:声明在⽅法内、⽅法形参、代码块内、构造器形参、构造器内部的变量
关于权限的修饰符不同
属性:可以在声明属性时,指明其权限,使⽤权限修饰符(private、public、缺省、protect等)局部变量:不可以使⽤权限修饰符
默认初始化值的不同
属性:类的属性,根据其类型,都有默认初始化值。
整型(byte、short、int、long):0
浮点型(float、double):0.0
字符型(char):0(\u0000)
布尔型(boolean):false
引⽤数据类型(类、数组、接⼝):null
局部变量:没有默认初始化值,意味着我们在调⽤局部变量之前,⼀定要显⽰赋值。
特别的:形参在调⽤时,我们赋值即可。
在内存加载的位置不同
属性:加载到堆空间中(⾮static)
局部变量:加载到栈空间中
五、类中⽅法的声明和使⽤。
⽅法:描述类应该具有的功能
举个栗⼦
返回值类型:
如果⽅法有返回值,则必须在⽅法声明时,指定返回值的类型。同时⽅法中,需要使⽤return关键字来返回指定类型的变量或常量:“return 数据”
如果⽅法没有返回值,则声明⽅法时,使⽤void来表⽰。通常,没有返回值的⽅法中,就不使⽤return。但是如果使⽤的话,只能“return;” 表⽰结束此⽅法的意思
形参列表:⽅法可以声明0个,1个,或多个形参。
格式:数据类型1 形参1,数据类型2 形参2,...
六、理解万事万物皆对象
1.在Java语⾔范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调⽤具体的功能结构
Scanner,string等
⽂件:Filejava面向对象的特征有哪些方面
⽹络资源:URL
2.涉及到Java语⾔与前端Html、后端的数据库交互时,前后端的结构在Java层⾯交互时,都体现为类、对象
七、内存解析的说明
引⽤类型的变量,只能储存两类值:null 或 地址值(含变量的类型)
⼋、匿名对象的使⽤
1.理解:我们创建的对象,没有显式的赋给⼀个变量名。即为匿名对象
2.特征:匿名对象只能调⽤⼀次
九、⽅法的重载
1.定义:在同⼀个类中,允许存在⼀个以上的同名⽅法,只要他们的参数个数或者参数类型不同即可。
2.如:Arrays类中重载的sort()/binarySearch()
⽅法名:---> 重载列表
3.可变个数形参的⽅法
1.jdk 5.0新增的内容
2.具体使⽤:
可变个数形参的格式:数据类型 ... 变量名
当调⽤可变个数形参的⽅法时,传⼊的参数可以是0个到多个。
当可变个数形参的⽅式与本类中的⽅法名相同,形参不同的⽅法之间构成重载
当可变个数形参的⽅式与本类中的⽅法名相同,形参类型也相同的数组不能构成重载,⼆者不共存
可变个数形参在⽅法的形参中,必须声明在末尾,最多只能声明⼀个可变形参。
⼗、⽅法参数的值传递机制
关于变量的赋值:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引⽤数据类型,此时赋值的是变量所保存的数据的地址值。
⽅法的形参的传递机制:值传递
形参:⽅法定义时,声明的⼩括号内的参数
实参:⽅法调⽤时,实际传递给形参的数据
值传递机制:
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
如果参数是引⽤数据类型,此时实参赋给形参的是实参真实存储的数据的地址值。
⼗⼀、递归⽅法
递归⽅法:⼀个⽅法体内调⽤它⾃⾝
⽅法递归包含了⼀种隐式的循环,它会重复执⾏某段代码,但这种重复执⾏⽆需循环控制。public int getSum(int n) { //计算1-n之间所有⾃然数的乘积
if (n == 1) {
return 1;
} else {
return n * getSum(n - 1);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论