黑马程序员_java基础笔记(03)...面向对象
—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
this语句 :用于构造函数之间进行互相调用。this语句只能定义在构造函数的第一行。因为初始化要先执行。
静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块——> 构造代码块——>构造函数;
生成Java帮助文档:命令格式:javadoc –df:\ myhelp –auther –version ArrayTool.java
—d当前目录 —df:\存到f:\下 ArrayTool必须public修饰
例: /**
这是一个可以对数组进行操作的工具类,该类中提供了,获取最值,排序等功能。
@author 张三
@version V1.1
*/
public class ArrayTool {
/** 空参数构造函数。 */
private ArrayTool(){}
/** 获取一个整形数组中的最大值。
@param arr 接收一个int类型的数组。
@return 会返回一个该数组中最大值。 */
public static int getMax(int[] arr) {
int max = 0;
for(int x=1; x<arr.length; x++) {
if(arr[x]>arr[max]) max = x;
}
return arr[max];
}
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、单例模式(Singleton)、建造者模式(Builder)、原型模式(Prototype)。
结构型模式,共七种:适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、外观模式(Facade)、桥接模式(Bridge)、组合模式(Composite)、享元模式(Flyweight)。
行为型模式,共十一种:策略模式(strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代子模式(Iterator)、 责任链模式(Chain of Responsibility)、命令模式(Command)、备忘录模式(Memento)、状态模式(State)、访问者模式(Visitor)、中介者模式(Mediator)、解释器模式(Interpreter)。
其实还有两类: 并发型模式和线程池模式。
记录原则:定义单例,建议使用饿汉式。
先初始化对象。称为:饿汉式。Single类一进内存,就已经创建好了对象。
class Single{
// 在类中创建一个本类对象
private static Single s = new Single();
// 将构造函数私有化
private Single(){ }
// 提供一个方法可以获取到该对象
public static Single getInstance(){
return s;
}
}
对象是方法被调用时,才初始化,也叫做对象的延时加载。成为:懒汉式。
Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。
class Single{
private static Single s = null;
private Single(){ }
public static Single getInstance(){
if(s==null){
// 加了一个锁
synchronized(Single.class){
if(s==null)
s = new Single();
}
}
return s;
}
}
super()和this()是否可以同时出现的构造函数中。
两个语句只能有一个定义在第一行,所以只能出现其中一个。
super()或者this():为什么一定要定义在第一行?
因为super()或者this()都是调用构造函数,构造函数用于初始化,所以初始化的动作要先完成。
class InnerClass{
—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
黑马程序员_java基础笔记(03)...面向对象的更多相关文章
- 黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— 1,面试题目:银行业务调度系统 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内 ...
- 黑马程序员_java基础笔记(14)...交通灯管理系统_编码思路及代码
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 1,面试题——交通灯管理系统 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: ...
- 黑马程序员_java基础笔记(01)...java的环境搭建
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— JavaSE(Java Standard Edtion java标准版)技术概况 ...
- 黑马程序员_java基础笔记(09)...HTML基本知识、CSS、JavaScript、DOM
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 基本标签(a.p.img.li.table.div.span).表单标签.ifra ...
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— GUI(Graphical User Interface)(图形用户接口):用图形 ...
- 黑马程序员_java基础笔记(07)...IO流
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流!—————————— IO(InputStream,outputStream)字节流 (Reader,Wr ...
- 黑马程序员_java基础笔记(06)...集合
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— JavaApi(其实就是java给我们提供的已经定义好的对象.工具对象:集合框架) ...
- 黑马程序员_java基础笔记(13)...类加载器和代理
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 1,类加载器.2,代理. 1,类加载器. Java虚拟机中可以安装多个类加载器,系 ...
- 黑马程序员_java基础笔记(11)...反射
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 1,字节码.2,Constructor类.3,Field类.4,Method类.5 ...
随机推荐
- opencv 图像处理函数大全
.cvLoadImage:将图像文件加载至内存: .cvNamedWindow:在屏幕上创建一个窗口: .cvShowImage:在一个已创建好的窗口中显示图像: .cvWaitKey:使程序暂停,等 ...
- EM算法(Expectation Maximization Algorithm)
EM算法(Expectation Maximization Algorithm) 1. 前言 这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...
- HTML面试基础问题
1.Doctype作用?严格模式与混杂模式如何区分?它们有何意义? 1)<!DICTYPE>声明位于文档中的最前面,处于<html>标签之前,告诉浏览器的解析器,用什么文档 ...
- python核心编程笔记——Chapter8
Chapter8.条件和循环 这一章感觉有用的点并不多,在我眼里就只有迭代器,列表解析和生成器表达式值得研究而已. 8.2.循环,难度不大. #!usr/bin/env python #-*-codi ...
- C# 定时执行方法: System.Timers.Timer用法示例
System.Timers.Timer t = new System.Timers.Timer(5000); //设置时间间隔为5秒 private void Form1_Load(ob ...
- Eclipse改变相同代码高亮颜色
一.点击某一代码时,让相同代码高亮显示(Eclipse默认是这样的) Window ->preferences ->Java ->Editor ->Mark Occurrenc ...
- POJ 1986 Distance Queries (Tarjan算法求最近公共祖先)
题目链接 Description Farmer John's cows refused to run in his marathon since he chose a path much too lo ...
- 51、多线程创建的三种方式之实现Callable接口
实现Callable接口创建线程 Callable接口是在jdk5版本中加入的,这个接口在java.util.concurrent包下面,与其他两种方式不同的地方在于使用Callable接口创建的线程 ...
- 查看linux系统的信息
#!/bin/sh ################################################## #function:get host's information #Autho ...
- 【比赛游记】THUSC2018酱油记
day -1 早上4:30就要起来去飞机场…… 7点的飞机,10:30就到北京了. 北京的街景并没有我想像的漂亮……大概是因为我在四环外〒▽〒 晚上还有CF div3场,果断的去水了,因为太累就没有打 ...