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