现在的位置: 首页 > 综合 > 正文

构造方法,匿名对象,单例模式,Static,内部类

2013年09月11日 ⁄ 综合 ⁄ 共 1751字 ⁄ 字号 评论关闭


构造方法:

每个类中都存在一个构造方法,构造方法的主要目的是为类中的属性初始化的

使用关键字 new 的时候才会调用类中的构造方法

要求

1、构造方法的名称必须与类名称一致

2、构造方法的定义时没有返回值类型的声明

3、不能在构造方法中使用return 返回一个内容

4、如果一个类中没有明确的声明一个构造,则会自动生成一个无参的什么都不做的构造方法

5、构造方法允许重载

匿名对象

  • 只使用一次的对象

例如: new Person("张三","30"); (使用过后就成为垃圾了)

  • 一个字符串就是一个String的匿名对象

程序开发思路:

1、完成基本功能

2、改善功能

3、形成更好的结构,加入一些类的设计

4、主方法中不能编写过多代码


对象数组:对象数组包含了一组对象,但是对象数组使用的时候要注意,声明后需要单独实例化

1、声明 :  类名称 对象数组名称[] =new 类名称[长度]

单例模式:(一个类只能有一个实例化对象)

特点:1、这个类只能有一个实例

    2、必须自行创建这个实例

    3、必须自行向整个系统提供这个实例


饿汉模式:

	class Singleton{
		private static Singleton instance = new Singleton();
		private Singleton(){}
		static Singleton getInstance(){
			return instance;
		}
	}

懒汉模式:

class Singleton {
		private static Singleton instance = null;
	
		private Singleton() {
		}
	
		static Singleton getInstance() {
			if (instance == null) {
				instance = new Singleton();
			}
			return instance;
		}
	}

static 的一些相关应用

1、使用static可以统计一个类产生了多少个实例化对象(因为static的属性是所有对象共享的)

2、使用static进行自动命名操作


1、的举例说明

class Person {
	private String name;
	private static int count;

	public Person() {
		count++;
		System.out.println("产生了" + count + "个实例化");
	}
}

public class DemoStatic {
	public static void main(String args[]) {
		new Person();
		new Person();
		new Person();

	}
}

2、的举例说明

class Person {
	private String name;
	private static int count;

	public Person() {
		count++;
		this.name = "no name +" + count;
	}
	public Person(String name){
		this.name = name;
	}
	
	public String getInfo(){
		return "person  name =  "+name;
	}
}

public class DemoStatic {
	public static void main(String args[]) {
		System.out.println(new Person().getInfo());
		System.out.println(new Person("zhang san").getInfo());
		System.out.println(new Person().getInfo());
		System.out.println(new Person("li si").getInfo());

	}
}

代码块 :

普通代码块 (直接在一个方法中出现的“{}”的代码块)

构造块(直接在类中定义的代码块) 优先于构造方法执行

静态代码块 (使用static关键字声明的代码块,称为静态块,主要母的是为静态属性初始化)

静态块优先于主方法执行,静态块优先于构造块执行,而且只执行一次

同步代码块

内部类: (唯一优点:可以方便的访问外部类的私有成员)

一个内部类如果使用static关键字声明的话,则此内部类就将成为外部类,可以直接通过外部类.内部类的形式访问。

在方法中定义的内部类,可以直接访问外部类中的各个成员,但是如果要范围方法中的参数,则在参数上要使用final关键字声明





抱歉!评论已关闭.