第五篇.wjj

static:静态,可以修饰成员变量,成员方法

类变量(静态成员变量):static修饰,属于类,被类的所有对象共享

实例变量:无static修饰,属于对象

public class Student{
//类变量
static String name;
//实例变量
int age;
}

调用方法:

类变量:类名.类变量(或对象名.类变量.不推荐

实例变量:对象.实例变量

访问自己类中的类变量可以省略类名,但在某个类中访问其他类的变量,需要带类名访问

本类中的方法中参数名与类变量名一样时,也是需要加上类名前缀才行

public seUser() {
//        seUser.number
        number++;
    }

类名的构造器不能用static修饰

//  public static seUser() {此处不允许使用修饰符static
    public seUser() {
        seUser.number
        number++;
    }

类方法和实例方法

类方法:有static修饰的成员方法,属于类

用法:类名.类方法;对象名.类方法(不推荐)

public static void name(){
System.out.println("hello"):
}

实例方法:无static修饰的成员方法,属于对象

用法:对象.实例方法

public  void name(){
System.out.println("hello"):
}

使用类方法设计工具类的好处:调用方便,提高了开发效率

工具类的方法用类方法而不用实例方法原因:

1)实例方法需要创建对象来调用,此时对象只是为了调方法,对象会占内存

2)类方法,直接使用类名调用,调用方便,也节省内存

如果工具类没有创建对象的要求,建议将工具类的构造器私有

案例之随机验证码

import java.util.Random;
public class fologin {
private fologin(){
//因为不需要构造对象,所以将类方法的构造器私有

}
    public static String Gcode(int n){

        String code="";
        String date="abcdefghijklmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM";
        Random r=new Random();
        for (int i = 0; i <n ; i++) {
            int index=r.nextInt(date.length());
            code+=date.charAt(index);

        }
        return code;
    }
}
public class four {
    public static void main(String[] args) {
        System.out.println(fologin.Gcode(4));
    }
}

使用类方法,实例方法时的注意事项

1.类方法中可以直接访问类的方法,不可以直接访问实例成员

2.实例方法中既可以直接访问类成员,也可以直接访问实例成员

3.实例方法中可以出现this关键字,类方法中不可以出现this关键字

代码块

类的五大成分:成员变量,构造器,方法,代码块,内部类

1.静态代码块:

格式:static{}

特点:类加载时自动执行,由于类只会加载一次,所以静态代码也只会执行一次

作用:完成类的初始化

2.实例代码:

格式:{}

特点:每次创建对象时,执行实例代码块,并在构造器前执行

作用:和构造器一样,都是用来完成对象的初始化

单例设计模式:

饿汉式:确保一个类只有一个对象

提前创建对象

写法:

1.把类的构造器私有

2.定义一个变量记住类的一个对象

3.定义一个类方法,返回对象

public  class A{
//定义一个类变量记住类的一个对象
private static A book=new A();
//私有构造器
private A (){
}
//定义一个类方法返回对象
public static A getobject(){
return book;
}

懒汉式单例设计模式:拿对象时才开始创建对象

写法

把类的构造器私有

2.定义一个变量记住类的一个对象

3.提供一个类方法,保证返回的是同一个对象

public class B{
//定义一个类变量,用于存储这个类的一个对象
private static B file;
//把类的构造器私有
private B(){
}
//定义一个类方法,保证第一次调用时才创建一个对象,后面调用时都会用这一个对象返回
public static B gett(){
if(file==null){
file=new B();
}
return file;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mshkkhhgybzlc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值