本周,我们主要学习了Java面向对象方面的内容,主要包括以下几个方面:
理解类、对象、继承、多态等概念,并学会如何将它们应用到实际问题中还是有些难,明显感觉到应该是碰到了个坎。学习面向对象之后发现代码可以是一块一块的,每周都有那么一丢丢的进步哎~虽然很小,但是还是很开心的呀~
但是这周内容有些多哎,太难消化了,这周真的过得很疲惫,虽然周六周天都放假了,但是身体上的疲惫还有心理上的疲惫真的能把人压垮,想回家了,这周生病之后真的特别特别想家…
8.21补充:很感谢我的舍友还有开发喵的各位老师,在我生病的时候一直陪在我们身边,在医院的时候就在考虑了,究竟要不要之后一个人留在这个陌生的城市,只能说走一步看一步吧,人生地不熟,真的很难受。
每天的知识都没有理解透,一个知识点没有理解新的知识点又来了,整个就乱乱的,等到后面差的越来越多,就导致特别特别累,得改变一下这个状态,状态不好!
保持状态就会进步,或多或少取决于自己
永远不要站在原地等结果
面向对象三大特征:封装、继承、多态
具有相同的状态和相同的行为的一组对象的集合
真实存在的具体个体
抽象和具体,对象是类的一个实例,类是多个对象进行综合抽象的结果,是实体对象的概念模型
定义类
[修饰符] class 类名{
成员变量; //类的字段
成员方法; //类的行为
}
一个类中只能含有一个public修饰的类,且类名要与文件名相同
类的字段:类的属性
[修饰符] 数据类型 字段名;
类的方法:类的行为
类名 对象名 = new 类名();
对象的字段不赋值,会默认对应的值
对象的指针分配在栈中,对象的实例分配在堆中,对象有多少属性就分配多大内存
类的字段直接定义在类的内部,方法的外部的变量,为成员变量
局部变量:定义在方法的内部
生成实例对象的唯一方法
与类名相同,没有返回值
作用:为成员变量初始化
在类中没有定义构造方法,系统会默认创建一个无参构造,该构造方法没有参数和方法体,生成对象的属性值也为零或空,若定义构造方法,系统会自动屏蔽掉无参构造方法,构造方法不能继承
所以在定义时,最好无参构造和带参构造都定义
定义:
[访问修饰符] 方法名([参数列表]){
//方法体
}
在进行初始化时,带参构造会直接把值赋值给对应字段
无参构造需要调用对应字段进行赋值,不赋值,默认为该字段的初始值
this关键字是对一个对象的默认引用。
使用场景:
包的定义:package 包名
当前类所在的包
源文档的第一条非注释性语句,并且原文档只能有一个包声明语句,包名前缀通常是全部小写的ASCII字母,并且是一个顶级域名,通常使用域名的倒写,包名的后续根据不同的公司规定不同
当前类要使用的包
import 包名.类名
同包下的类不需要导包
使用非同包下的类需要导包或或使用全限定类名
java.lang包下的包不需要导包
类访问修饰符:public 、package-access
类成员的访问修饰符:
public :公有的,任何地方都可以访问
protected:受保护的,同包以及不同包子类能访问
package-access:包访问权限,同包中访问
private:私有的,只能在当前类中访问
松耦合尽量减少对象之间的关联性,以降低他们之间的复杂性和依赖性
1.修改字段的访问权限
2.设置get/set字段方法
3.设置字段的存取限制
1.隐藏类的内部细节
2.限制外部访问控制数据的正确性和完整性
3.修改类的内部实现,不会影响类的用户
4.提高代码的重用性
在一个作用域中使用了一个和外层作用域相同的变量名,导致内部变量遮蔽了外部变量,即无法直接访问外部变量
powered by kaifamiao