前言:
过了入门阶段,开始学习进阶语法了。每天进步一点点,打好基础,daydayup!
什么是面向对象编程(oop),可以看这篇
java的面向对象编程(oop)概述及案例
static概述
static的意思为静态,用于修饰成员变量及成员方法。
成员变量根据有无static可以分为两种——类变量及实例变量
public class demo {
static String name;//类变量
int age ;//实例变量
}
1,类变量
类变量属于类,与类一起加载一次,在内存中只有一份,可以被类和类的所有对象共享。
使用方法:
1,加载类,使用变量引用
类名 变量名 = new 类名();
变量名.类变量=赋值;
例:根据上述demo类,编写如下
demo sc = new demo();
sc.name = "lala";
System.out.println(sc.name);
2,通过类名直接引用类变量
类名.类变量=赋值;
例:编写如下
demo.name= "qingwa";
System.out.println(demo.name);
使用注意:
由于只与类加载一次,所以当赋值后,新值会替换原来的值
2,实例变量
实例对象属于对象,每个对象都有一份,只能用对象访问
使用方法:
加载类,使用变量引用
类名 变量名 = new 类名();
变量名.类变量=赋值;
例:如下
demo sc = new demo();
sc.age = 17;
使用注意:
每次生成类就会加载一次,所以每次赋值都会生成新的数字
方法根据有无static可以分为类方法及实例方法
public class demo {
public static void student(){//类方法
System.out.println("hhhhhh");
}
public void student1(){//实例方法
System.out.println("aaaaaaa");
}
}
1,类方法:
有static修饰的成员方法,属于类方法
使用方法:
1,通过类名直接引用
类名.方法名
例:如下
demo.student();
2,通过加载类再使用变量引用
类名 变量名 = new 类名();
变量名.方法名;
例:如下
demo sc = new demo();
sc.student();
例:两种方式都能输出方法
2,实例方法:
无static使用的成员方法,属于对象
使用方法:
通过加载类再使用变量引用
类名 变量名 = new 类名();
变量名.方法名;
例:如下
demo sd = new demo();
sd.student1();
注:main方法也是一种类方法
static使用场景
static方法可用来做工具类
什么是工具类
工具类是一种类方法,每一个类方法都是一种功能;提高了代码的复用性,提高了开发效率
为什么用类方法创建工具类,而不是实例方法
实例方法需要创建对象来调用,会浪费内存
工具类定义时有什么要求
由于工作类不需要创建对象,所以需要把构造器私有化
代码块中static的作用
代码块分为两种:静态代码块及实例代码块
1,静态代码块
格式:
static{}
特点:
类加载时会自动执行,由于类只加载一次,静态代码块也只执行一次
作用:
完成类的初始化
2,实体类代码块
格式:
{}
特点:
每次创建对象时,执行实例代码块,并在构造器前执行
作用:
和构造器一样,用来完成对象初始化的
设计模式
什么是设计模式
问题的最优解解决方案称为设计模式,设计模式有很多种,先了解单例设计模式。
设计模式之一单例设计模式
把类的构造器私有;定义一个类变量储存类 的一个对象:提供一个类方法返回对象。其特点为:在获取类的对象时,对象已经创建好了。
注:频繁使用对象时用饿汉式单例;不频繁使用对象用懒汉式单例(可以节省内存)
例1:如下(饿汉式单例:先创建出了对象)
public class car {
private static car a = new car();
//定义一个类,储存一个对象
private car(){
//私有化构造器
}
public static car use(){
return a;//返回对象
}
}
例2:如下 (懒汉式单例:使用时在创建对象)
public class moive {
private static moive a;//创建对象
private moive(){
}//私有化构造器
private static moive use(){
if (a==null){
a=new moive();//当使用时再创建对象
}
return a;//返回值
}
}
整理结束,撒花!!!!