2019/2/18 星期一
今天学习了Java 中的面向对象思想
主要学习了类 构造器等
在学习修饰属性的过程中,有4点必须牢记
前提是理解类的各种关系 类中有5种关系 本身 同包类 同包继承子类 不同包继承子类 不同包非继承类
第一 private 当使用private 来修饰类中属性时 只有自身可以访问 其他一律不可访问
第二 不写任何修饰时 自身 同包类 同包继承子类 可以访问 其余 不同包继承子类 不同包非继承类 均不可访问
第三 protected 当使用protected 来修饰类中属性时 除了不同包继承子类 其余都可以访问
第四 public 当使用 public 来修饰类中属性时 所有类都可以访问

类属性的学习和深入记忆
属性可以分为两种类型,类属性和实例属性即对象属性,类属性必须用static来修饰,类属性适用于所有该类实例化对象都共有的属性,如人这个类,都共有的特性是直立行走的,在创建人这个类时,直立行走必须用static来修饰。但是在这个例子中,有一点是不恰当的,如果通过对象来修改类属性,那么所有的对象以及类的这个属性都会改变,但是在现实生活中,如果一个孩子生下来是畸形的,那么全世界的人也不会变成畸形而和那个小孩子一样爬着行走。
类方法的学习和深入记忆
对象方法:即实例方法(非静态方法),必须有实例对象才可以使用的方法。
类方法:(静态方法)即类中的方法,不必用到实例对象,而且实例对象也可以使用。
单例模式的学习
什么是单例模式
单例模式指在抽象化的包含各类对象实例的空间样本中,特殊存在而且唯一存在的实例,特点是无法通过构造来获得,必须通过该单例的方法获取,而且获取的单例都是具有唯一性的,且都指向同一实例。
构造方法:有两种方法。1:饿汉式构造方法:在一开始便将单例实例化,并且一直存在。2:懒汉式构造方法:只有在用到的时候才会将其实例化,节省加载时间。
public class GiantDragon {
//私有化构造方法使得该类无法在外部通过new 进行实例化
private GiantDragon(){
//准备一个类属性,指向一个实例化对象。 因为是类属性,所以只有一
private static GiantDragon instance = new GiantDragon();
//public static 方法,提供给调用者获取12行定义的对象
public static GiantDragon getInstance(){
return instance; }
}
第二种:
public class GiantDragon {
//私有化构造方法使得该类无法在外部通过new 进行实例化
private GiantDragon(){
} //准备一个类属性,用于指向一个实例化对象,但是暂时指向null
private static GiantDragon instance;
//public static 方法,返回实例对象
public static GiantDragon getInstance(){
//第一次访问的时候,发现instance没有指向任何对象,这时实例化一个对象
if(null==instance){
instance = new GiantDragon();
} //返回 instance指向的对象
return instance; }
}
主要记住3要素:
1.私有化构造方法,使其无法产生第二个单例。
2.将类静态属性指向该单例
3.返回2中的唯一单例

2018年2月19日我的java学习的更多相关文章

  1. 2018年2月19日我的java学习(——)

    在学完了类和对象的时候,开始对面向对象的思想有了一点认识,不过也不是完全的理解了. 就现在的学习状态来说,是非常的不错的,但是在学习的内容来说,我学的好像只是跟随这 站长的思路而已,也许是经验不足吧. ...

  2. pycharm2018.1.4激活破解方法与汉化包-2018年6月19日

    记录下来备用,顺便分享给大家,有能力的还是希望能够支持正版!支持正版!支持正版! 方法1:激活服务器,最简单快速(截止2018年6月19日可用) 在激活Jetbrains旗下任意产品的时候选择激活服务 ...

  3. Android构建项目时出现的小bug们(2018年5月19日19:31:20)

    问题详情 Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency ...

  4. Android TextView 跑马灯效果 - 2018年6月19日

    第一步在布局中添加加粗部分代码: <TextView android:id="@+id/tv_company" android:layout_width="0dp& ...

  5. Azkaban3.X的安装(2018年8月19日最新版本)

    参考文章: 1.http://azkaban.github.io/azkaban/docs/latest/ 2.http://blog.csdn.net/gaoqida/article/details ...

  6. ACM训练小结-2018年6月19日

    今天题目情况如下:  A题:考察图论建模+判割点.B题:考察基础数据结构的运用(STL).C题:考察数学建模+运算.(三分可解)D题:考察读题+建模+数据结构的运用.E题:考察图论+贪心.F题:考察图 ...

  7. WIN10 困扰多时的屏幕亮度 终于可以调节了-完美 -更新2018年2月28日

    总结:很多问题是自己认知不够造成的,  -- 问题解决在  修复经历二,可直接跳过去看  修复经历二. 首先看你屏幕亮度是集成还是独立显卡决定的(一般是集成),所以下面 修复经历一折腾独立显卡驱动没什 ...

  8. Oracle性能图表工具:awrcrt.sql 介绍,更新到了2.14 (2018年3月31日更新)

    2018-03-31 awrcrt更新到了2.14版本, 下载地址为 https://pan.baidu.com/s/1IlYVrBJuZWwOljomVfta5g https://pan.baidu ...

  9. Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

    array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...

随机推荐

  1. Twisted网络库编程实例

    于这一周看了python的第三方网络库Twisted,英文看的头比较大,想看英文的话点击这里.如果英文很烂,可以看中文,这里.总的来说我了解到的主要包括以下三个东东:Factory.protocol和 ...

  2. 批量IP自动ping脚本

    批量IP自动ping脚本ping.sh 在同一目录新建一个名为pingip的文件,并以每行一个IP的方式罗列.使用sh命令执行ping.sh #!/bin/bash IP_LIST=`cat ping ...

  3. windows密码策略

    windows域环境配置密码策略: http://www.cnblogs.com/danzhang/p/3693024.html windows配置密码策略: https://jingyan.baid ...

  4. python大法好——Python 面向对象

    Python 面向对象  Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法 ...

  5. Springboot 热部署问题。亲测可用。

    本人开发使用的是Mac系统,windows应该类似.主要是 spring-boot-devtools的使用 参考:mac下的idea设置,是不是有疑问,既然别人写好了,为啥你还要再来一次,因为我使用了 ...

  6. js:捕获冒泡和事件委托

    一.事件流(捕获,冒泡)   事件流:指从页面中接收事件的顺序,有冒泡流和捕获流. 当页面中发生某种事件(比如鼠标点击,鼠标滑过等)时,毫无疑问子元素和父元素都会接收到该事件,可具体顺序是怎样的呢?冒 ...

  7. python 的类装饰器

    我们都知道python的函数有装饰器,那么类也有装饰器吗?有的,为什么没有呢,来看下代码吧 def out(args): def inner(cls): cls._args = args return ...

  8. SSM商城项目(六)

    1.学习计划 1.Redis服务器搭建 2.Redis持久化 3.Redis集群搭建 4.Jedis 5.Solr服务器安装 2.Redis的安装 2.1. Redis的安装 Redis是c语言开发的 ...

  9. MFC笔记8

    1.在循环使用数组时需要清理数组 CString str; memset(str,0,strlen(str)); 判断两个字符串包含数字大小是否相等 CString str="22" ...

  10. [leetcode]170. Two Sum III - Data structure design两数之和III - 数据结构设计

    Design and implement a TwoSum class. It should support the following operations: add and find. add - ...