扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
static可以用来修饰类的内部结构(除了构造器):属性、方法、代码块、内部类
创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为勉县企业提供专业的成都网站建设、网站制作,勉县网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。1.1 静态属性class Chinese{String name;
int age;
static nation;
}
class Test{public static void main(String[] args){//不用创建对象,就可以调用静态变量
//因为静态变量随着类的加载而加载
Chinese.nation = "CHINA";
}
}
1.2 静态方法属性
2.3 饿汉式和懒汉式
- 将构造器设置为private的(这样类的外部就不能创建对象了)
- 在类的内部创建静态的类对象instance
- 声明public的静态方法getInstance(),返回类内部创建的对象
//单例设计模式
//饿汉式
public class SingletonTest1 {public static void main(String[] args) {Bank b1 = Bank.getInstance();
Bank b2 = Bank.getInstance();
//地址值相同,说明这个类只有一个对象
System.out.println(b1 == b2);
}
}
class Bank {//私有化类的构造器
private Bank() {}
//内部创建类的对象
private static Bank instance = new Bank();
//声明public,static的getInstance方法,返回内部创建的类
public static Bank getInstance() {return instance;
}
}
//单例模式
//懒汉式
public class SingletonTest2 {public static void main(String[] args) {Order order1 = Order.getInstance();
Order order2 = Order.getInstance();
System.out.println(order1 == order2);
}
}
class Order{private Order(){}
private static Order instance = null;
public static Order getInstance(){if(instance == null){instance = new Order();
}
return instance;
}
}
饿汉式和懒汉式的比较
因为只生成一个对象,所以减少了系统的开销
class Person{//非静态代码块
{
}
//静态代码块
static{}
}
4.1 静态代码块数字表示赋值的先后顺序
final —— 最终的(不可修改)
final可以用来修饰类、方法、变量
final类不能有子类,不能被继承
比如String类、System类、StringBuffer类
表示此方法不能被重写
6.3 final修饰变量final修饰变量,此时的变量就称为一个常量
static final修饰属性:全局常量
7. abstract关键字abstract 可以用来修饰类和方法
7.1 抽象类抽象类不能实例化,只能被其他类继承
抽象方法只有方法的声明,没有方法体
public abstract void eat();
注意点
//假设Person是一个抽象类
//Person中eat方法是抽象方法
//创建匿名子类,把抽象类的抽象方法给实现了
//使用多态将子类对象赋给父类的引用
Person p = new Person(){public void eat(){System.out.println("你要好好吃饭啊");
}
}
7.4 模板方法设计模式import java.time.format.TextStyle;
import javax.sound.midi.SysexMessage;
//模板方法设计模式
public class TemplateTest {public static void main(String[] args) {Template test = new SubTemplate();
test.spendTime();
}
}
//一个计算代码运行时间的类模板
abstract class Template{public void spendTime(){long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("代码运行的时间为"+(end - start));
}
public abstract void code();
}
class SubTemplate extends Template{@Override
public void code() {// TODO Auto-generated method stub
for(int i = 2;i<=1000;++i){boolean isPrime = true;
for(int j = 2;j<=Math.sqrt(i);++j){if((i%j==0)){isPrime = false;
}
}
if(isPrime){System.out.println(i);
}
}
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流