构造方法:
每个类中都存在一个构造方法,构造方法的主要目的是为类中的属性初始化的
使用关键字 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关键字声明