黑马程序员—面向对象(1)
来源:互联网 发布:cs软件界面设计 编辑:程序博客网 时间:2024/05/17 10:28
------- android培训、java培训、期待与您交流! ----------
1 构造代码块
作用——给该类所有对象进行初始化,对象一建立就执行,优先于构造函数。
和构造函数区别——构造代码块给所有对象进行无差别的统一初始化,构造函数给对应对象初始化。构造代码块其实定义的是构造函数忠共同的部分。
格式
{
//构造代码块中内容。
}
2 关键字this
this代表本类的对象,代表它所在函数所属对象的引用。即某对象A调用了该函数,this就代表对象A。
当定义类中功能时,该函数内部要用到调用该函数的对象时,就用this表示该对象。
特殊用法——构造函数间相互调用。
Person(string name){}Person(string name,int age){ this(name);//必须放在第一行,因为初始化要优先执行,这里不能写Person(name) this.age=age;}
3 关键字static
用法——修饰符,用于修饰成员变量或函数,被对象共享。
成员被静态修饰后,就多了一个调用方式,除了可以被对象调用,还可以直接被类名调用。
这类数据存储在方法区(共享区,数据区)。
特点:
(1) 随着类的加载而加载,随着类的消失而消失,较其它成员生命周期长。
(2)优先于对象而存在。
(3) 被所有对象所共享。
(4) 可以被类名调用。
存放位置:类变量随类的加载而存在于方法区中。
实例变量随对象的建立而存在于堆内存中。
注意:
(1)静态方法只能访问静态成员,非静态方法都可以访问。
(2)静态方法中不可以定义this,super等关键字,因为静态优先于对象而存在。
(3)主函数是静态的。
什么时候使用静态修饰成员或者函数?
(1) 对象中出现共享数据时(国籍,学校),该数据用静态修饰。
(2) 功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
特例:工具类
工具类:将一系列常用操作封装成一个类,其内部都是静态成员函数,并且为了防止用户创建该类对象,将构造函数私有化了。
4 静态代码块
格式:
static{//语句}
特点——随着类的加载而执行,只执行一次,用于给类进行初始化。,并且优先于主函数执行。
5 单例设计模式
基本思想:
(1) 通过私有化构造函数禁止其他程序建立该类对象。
(2)本类内部定义一个对象供其他程序访问。
(3)对外提供一个方法获取该类对象。
//饿汉式 class Single { private Single(){} private static final Single s = new Single(); // final 可以不写 public static Single getInstance() { return s; } }
·懒汉式--对象调用时才初始化(对象的延时加载) class Single2 { private Single(){} private static Single2 s = null; public static Single2 getInstance() { if (s == null) { synchronized (Single.class) { if (s == null) s = new Single2(); } } return s; } }
- 黑马程序员—面向对象(1)
- 黑马程序员—面向对象(1)
- 黑马程序员——面向对象1:理解面向对象
- 黑马程序员——面向对象1
- 黑马程序员——面向对象1
- 黑马程序员——面向对象1
- 1、黑马程序员——面向对象
- 黑马程序员—面向对象1
- 黑马程序员---面向对象(1)
- 黑马程序员_面向对象(1)
- 黑马程序员_面向对象(1)
- 黑马程序员_面向对象(1)
- 黑马程序员 面向对象(1)
- 黑马程序员_面向对象(1)
- 黑马程序员_面向对象(1)
- ”黑马程序员“java面向对象(1)
- 黑马程序员—面向对象(基础)
- 黑马程序员—面向对象(扩展)
- 虚函数与纯虚函数
- 64位WIN7上成功安装theano,并运行了g++, GPU
- C++ virtual详解
- 用C++11优化矩阵运算的空间和时间效率
- Bottle实例Todo-List—动态路由中使用正则表达式
- 黑马程序员—面向对象(1)
- Linux下的consolen(控制台)和terminal(终端)
- MySQL字符集编码
- Xcode统计代码行数的方法
- 准确率, 召回率,mAP
- java二叉查找树的基本操作
- 记XX2013届优秀毕业生评选(请重视在公司展现自己,重视业绩参评过程,非技术贴)
- C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例
- USACO Controlling Companies