面向对象(下)

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学习的更多相关文章

  1. 疯狂java学习笔记之面向对象(八) - static和final

    一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...

  2. 【疯狂Java学习笔记】【理解面向对象】

    [学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需 ...

  3. 【疯狂Java学习笔记】【第一章:Java语言概述】

    [学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...

  4. 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事

    几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...

  5. 疯狂Java学习笔记(70)-----------挚爱Java

    与大家分享! 挚爱Java 10个使用Java最广泛的现实领域 写好Java代码的30条经验总结 Java字符串的substring真的会引起内存泄露么? Java内存的原型及工作原理深度剖析 Jav ...

  6. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  7. 疯狂java学习笔记之面向对象(五) - 封装、继承、多态

    一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...

  8. 疯狂java学习笔记之面向对象(四) - this关键字

    Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...

  9. 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

    方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...

随机推荐

  1. Codeforces 931 概率DP

    A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...

  2. 最长公共子序列板/滚动 N^2

    #include <bits/stdc++.h> using namespace std; int main() { ][],t; ],b[]; bool now,pre; scanf(& ...

  3. centos 挂载windows 2003 smb

    mount -t cifs //10.100.100.250/产品服务器/待测库/FI\ Cloud/CICD/BuildRoot_Dev/ /cicd --verbose -o vers=1.0,u ...

  4. spring boot filter -Autowired

    需求:在SpringBoot实现拦截器,并且需要自定义的filter类型自动装配一些对象 自定义的过滤器类 public class SessionExpireFilter implements Fi ...

  5. 将pip源更换到国内镜像

    将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s.幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2M ...

  6. Django【第10篇】:Django之分页初级版本

    分页和中间件 一.分页 Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse # Create ...

  7. web页面调用app的方法

    use_app_goto_page: (skip_type, skip_target) => { // Android App if (/android/i.test(navigator.use ...

  8. 设计模式Design Pattern(1)--简介

    什么是设计模式? 软件开发人员在长期实践中总结出来的解决特定问题的一套解决方案. 对象设计原则 计模式主要是基于以下的面向对象设计原则. 对接口编程而不是对实现编程. 优先使用对象组合而不是继承. 设 ...

  9. Vue Vue项目目录结构梳理

    Vue项目目录结构梳理   by:授客 QQ:1033553122 1.   结构梳理   . ├── build/                      # webpack 配置文件: │   ...

  10. 【JavaScript】数组方法之基础方法

    数组方法之基础方法 Array 对象属性 属性 描述 constructor 返回对创建此对象的数组函数的引用. length 设置或返回数组中元素的数目. prototype 使您有能力向对象添加属 ...