JavaSE学习笔记-----面向对象(上)

Java面向对象学习的主线:
1.Java类及类的成员:属性、方法、构造器、代码块、内部类
2.面向对象的三大特征:封装、继承、多态(抽象)
3.其他关键字:this、super、static、final、abstract、interface、package、import
“人把大象装进冰箱”
1.面向过程:强调的是功能行为,以函数为最小单位、考虑怎么做
①把冰箱门打开
②抬起大象,塞进冰箱
③把冰箱门关闭
2.面向对象:强调具备了功能的大象,以类/对象为最小单位、考虑谁来做
面向对象的两个基本要素
类:对一类事物的描述,是抽象的,概念上的定义
对象:是实际存在的该类事物的个体、实例(instance)
对象的内存解析
在这里插入图片描述

类中属性的使用:
属性(成员变量)vs 局部变量
不同点:
①在类中声明的位置不同:
属性直接定义在类的一对{ } 中
局部变量声明在方法内,方法形参、代码块内、构造器形参、构造器内部的变量
②关于权限修饰符的不同:
属性:可以再声明属性时,指明其权限,使用权限修饰符public private protected 缺省—>封装性
局部变量 :不可以使用权限修饰符
③默认初始化值的情况
属性:有初始值
局部变量:无
④在内存中加载的位置
属性:堆(heap)里面(非static)
局部变量:栈(stack)中
相同点:
1.定义变量的格式:数据类型 变量名= 变量值
2.先声明,后使用
3.变量都有其对应的作用域类中方法的声明和使用:
方法:描述类应该具有的功能
权限修饰符 返回值类型 方法名(形参列表){方法体}
说明:
权限修饰符:
private、public、缺省、protected
返回值类型:
有返回值 无返回值(void)
如果方法有返回值,则必须在方法声明时,指明返回值类型;方法中需要使用return指明返回的变量或者常量
没有返回值,用void 一般不使用return ,也可使用return; 结束方法
方法名: 属于标识符,见名知意
形参列表:可以是0个,1个,多个
方法体:方法功能的实现
return 关键字的使用:
1.使用范围,使用在方法体中
2.作用
①结束方法
②针对于有返回类型的方法 ,返回值
3.注意点:
return关键字后面不可以声明执行语句方法的使用中可以调用当前类的属性和方法
特别的:方法A中又调用方法A 递归 方法中不可以定义方法
理解“万事万物皆对象”
1.在Java语言范畴中,我们都将功能、结构封装到类中,通过类的实例化来调用具体的功能结构
2.涉及到Java语言与前端HTML/后端的数据库交互时,前后端的结构在Java层面交互时都体现为类、对象
内存解析的说明:
引用数据类型的变量,只可能存储两类值:null或者地址值(含变量的类型)

匿名对象的使用:
1.理解:我们创建的对象,没有显式的赋给一个变量名,即为匿名对象
new Person().方法();
2.特征:只能调用一次
方法的重载(overload)
同名方法,参数个数、参数列表或者参数类型不同
跟方法的权限修饰符、返回值类型、形参名、方法体无关
在通过对象调用方法时,如何确定某一个指定的方法:
方法名---->参数列表
可变个数的形参(JDK5.0更新)
使用:
格式 :数据类型 … 变量名 String … strs(匹配0-n个)
可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
可变个数形参的方法与本类中方法名相同,形参是数组的方法不能共存
必须声明在末尾(int i ,String … strs) 只能有一个
关于变量的赋值:
如果是基本数据类型,赋值
引用数据类型,赋地址值
方法参数的值传递机制
1.形参:方法定义时,声明在小括号里面的参数
2.实参:方法调用时:实际传递给形参的数据
值传递机制:
如果是基本数据类型,此时实参赋值给形参的是实参的真实值
如果是引用数据类型,实参赋值给形参的是实参的地址值
递归方法:一个方法体内调用它本身(Recursion) 快排

面向对象的特征一:
封装与隐藏(封装性)
高内聚:类的内部数据操作细节自己完成,不允许外界干涉
低耦合:仅对外暴露少量的方法用于使用
封装性的体现:
①将类的属性私有化(private) 同时提供公共的get、set方法来调用
②不对外暴露的私有方法
③单例模式(私有化构造器)
。。。
封装性的体现需要权限修饰符来配合
private、缺省、protected、public (从小到大)
类内部、同一个包、不同包、同一个工程
修饰类只能是缺省或者public
修饰类的内部结构:都可以(属性、构造器、方法、内部类)

类的结构值三----构造器(Constructor)
构造器的作用:
创建对象、初始化对象的属性
说明:
1.如果没有显式的定义构造器,则系统默认提供一个空参构造器
2.定义构造器的格式:权限修饰符 类名(形参){}
3.一个类中定义的多个构造器,彼此构成重载
4.一旦我们显式定义类构造器后,系统就不提供默认的空参构造器
5.一个类中,至少会有一个构造器
总结:属性赋值的先后顺序
①默认初始化
②显式初始化
③构造器中赋值
④通过对象.方法 或者对象.属性
以上操作的先后顺序 ①—>②—>③—>④
JavaBean:类是公共的,有一个无参的公共构造器、有属性,且有对应的set、get方法
UML类图:
+表示public -表示private #表示protected

关键字 this的使用:
1.this可以用来修饰:属性、方法、构造器
2.this修饰属性和方法:
this理解为:当前对象 或者当前正在创建的对象(构造器) (当方法形参与类的属性同名,一定要用this.属性)
3.this调用构造器
①使用this(形参列表)调用本类中其他构造器
②不能调用自己
③规定:this(形参列表) 必须声明在构造器首行,最多只能声明一个
关键字package的使用:
使用package声明类或接口所属的包,声明在源文件首行
每"." 一次就代表一层文件目录
同一个包下,不能命名同名的接口、类
import关键字的使用:
在源文件中显示的使用import结构导入指定包下的类,接口
"xxx.*"的方式导入xxx包下的所有结构,但如果使用的xxx子包下的结构,仍需显式导入
如果使用的类或接口是java.lang包下、或者本类定义的,省略import
如果在源文件中,使用了不同包下的同名的类,则需使用全类名的方式导入
import static 导入指定类或者接口中的结构
MVC设计模式:
模型数据层(Model) 视图模型层(View) 控制器层(Controller)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值