疯狂Java学习
面向对象(下)
6.3:类成员:又讲了一遍static修饰的类成员; Singleten(单例)类: 通过封装的方式,实现了一个类只能创建一次,应该是为了更好编写代码,创造的一个概念。
6.4:final修饰符:抓住final的定义,final修饰的类,方法,变量不可改变。要记住的知识点:1.final修饰的成员变量必须由程序员显示地指定初始值;2.可执行“宏替换”的final变量;3.不可变类;4.缓存实例的不可变类
/*错误&&经验
*1.我写了两个构造器,外加一个final修饰地成员变量age,报错说我没对age赋初值,经检查我一个构造器对age赋了初值,另一个没有,本来我以为我没有调用那个没赋初值就没事,因此在这里我意识到构造器之间是互不关联的(除非有调用);
*2.疯狂Java讲义上说Java的8个包装类和java.lang.String类是不可变类,我便去定义了几个对象,发现还能改变,通过查文件,我认为变得不是原来的对象,在变的过程中它又生成了新的对象,让原来的引用变量指向了新对象,造成了对象的值改变的假象;
6.5:抽象类:个人认为抽象类和多态很搭 ; 抽象类体现的是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行拓张、改造,但子类总体上大致保留了抽象类的行为方式。简单地说我们创造出这概念,使得我们编程的面向对象跟接近现实生活中的面向对象。
6.6 接口:体现的是规范和实现分离地设计哲学。一定程度上与抽象类有着相同的目的,不过抽象类更多的是作为模板,而接口是作为规范,所以两者在本质上还是有所不同。接口需要注意的是它的四个方法:默认方法,类方法,私有方法,抽象方法。另一个要注意的点是向上转型的使用。这是我在看面向接口的编程中的命令行模式看到的,方法定义时传入的是接口变量,实际传入的是实现了接口的一个类的对象。
(学Java接口体会到了:编程不仅仅是把代码写出来,还要思考如何更好更方便的写出代码,以及如何更方便,成本更低地维护它。)
疯狂Java学习的更多相关文章
- 疯狂java学习笔记之面向对象(八) - static和final
一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...
- 【疯狂Java学习笔记】【理解面向对象】
[学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需 ...
- 【疯狂Java学习笔记】【第一章:Java语言概述】
[学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...
- 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事
几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...
- 疯狂Java学习笔记(70)-----------挚爱Java
与大家分享! 挚爱Java 10个使用Java最广泛的现实领域 写好Java代码的30条经验总结 Java字符串的substring真的会引起内存泄露么? Java内存的原型及工作原理深度剖析 Jav ...
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
- 疯狂java学习笔记之面向对象(五) - 封装、继承、多态
一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...
- 疯狂java学习笔记之面向对象(四) - this关键字
Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...
随机推荐
- Centos6.6安装MySQL5.6.24
1.首先需要编译器gcc 编译器和cmake yum -y install gcc+ gcc-c++ cd /usr/local/src wget http://www.cmake.org/files ...
- SQL SERVER BCP导入导出
bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT ...
- CCPC-Wannafly Winter Camp Day1 (Div2) 吃豆豆 (DP)
题目描述 wlswls在玩一个游戏. wlswls有一个nn行mm列的棋盘,对于第ii行第jj列的格子,每过T[i][j]T[i][j]秒会在上面出现一个糖果,第一次糖果出现在第T[i][j]T[i] ...
- 动态SQL的注意
MyBatis的动态SQL元素. 元素 说明 <if> 判断语句,用于单条件分支判断 <choose>(<when>.<otherwise>) 相当于j ...
- java并发学习--第九章 指令重排序
一.happns-before happns-before是学习指令重排序前的一个必须了解的知识点,他的作用主要是就是用来判断代码的执行顺序. 1.定义 happens-before是用来指定两个操作 ...
- Selenium Java tutorial
https://eyes.applitools.com/app/test-results 1.
- 2018微信小程序开发遇到的坑
第一个坑:wx.showModal(OBJECT) wx.showModal在安卓手机里,如果点击遮罩的话会关闭弹窗,不会有任何回调.而苹果的情况下则是点击遮罩不会有任何反应. 这样会有什么问题呢? ...
- 查询重复数据group by menu_id having count(menu_id)>1
select * from sys_power_menu WHERE menu_id in ( select menu_id from sys_power_menu group by menu_id ...
- AOP代理
- Spring——IOC与Bean容器
[IOC] (1)IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护.也就是说由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中 (2)DI: ...