静态方法块 static 的用法

使用静态块的好处:只要在类被加载时,static块就会被调用,整个过程就调用这么一次,不会在后面的对象处又不断的调用。如果不使用它就会出现,new一个对象,我就要调用一次这些内容,重复被调用,从而增加开销。

这个程序就是用静态方法块,测试输入一个人的出生日期,判断是否在给定出生日期范围内出生,如果是就返回true,否则返回false。

package com.liaojianya.chapter5;

import java.sql.Date;

/**
 * This program will demonstrate the use of staticBlock.
 * @author LIAO JIANYA
 *
 */
public class StaticBlock
{
	public static void main(String[] args)
	{
		Person1 p = new Person1(Date.valueOf("1998-11-12"));
		Person1 p1 = new Person1(Date.valueOf("1988-11-12"));

		System.out.println("Is this p born between 1980 and 1990:" + p.isBornBoomer());
		System.out.println("Is this p1 born between 1980 and 1990:" + p1.isBornBoomer());
	}

}

class Person1
{
	private Date birthDate;
	private static Date startDate, endDate;
	static
	{
		startDate = Date.valueOf("1980-01-11");
		endDate = Date.valueOf("1990-01-11");
	}
	public Person1(Date birthDate)
	{
		this.birthDate = birthDate;
	}

	boolean isBornBoomer()
	{
		return birthDate.compareTo(startDate) >= 0 && birthDate.compareTo(endDate) < 0;
	}
}

结果显示:

Is this p born between 1980 and 1990:false
Is this p1 born between 1980 and 1990:true

 TIP:先前写这个程序的时候,遇到的问题就是在Person1 p = new Person1();l

这个时候,我尝试在括号里赋日期值,报各种错误,然后才发现需要用到一个java.lang.sql里的Date.valueOf("YYYY-MM-DD")格式,而不能直接赋一个数字年份。

查了一下API如下:

public static Date valueOf(String s)

  将 JDBC 日期转义形式的字符串转换成 Date 值。

参数:
  s - 表示 "yyyy-mm-dd" 形式的日期的 String 对象
返回:
  表示给定日期的 java.sql.Date 对象
抛出:
  IllegalArgumentException - 如果给定日期不是 JDBC 日期转义形式 (yyyy-mm-dd)。

时间: 2024-11-05 22:48:58

静态方法块 static 的用法的相关文章

Java下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

Java中static的用法

static静态,作为修饰符,最初是由c引入,一开始static表示退出一个块后依然存在的局部变量.随后,static表示不能被其他文件访问的全局变量和函数.到了C++和java,static表示属于类且不属于类对象的变量和函数. 从具体用法来看,主要用到5个方面. 一.静态域. static修饰类的域(字段,成员变量),被static修饰的域在类中只有一个,它属于类,也称为类域.它只能被类操作,不能由对象操作.比如 pubic class Employee { private static i

ava下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

static的用法及作用

static可以用来修饰属性.方法和代码块.static修饰的变量属于这个类所有,既由这个类创建的所有对象共用一个static变量.通常把static修饰的属性和方法称为类属性(类变量).类方法.不使用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量).实例方法.使用static修饰方法的最常见的例子是我们熟悉的main()方法.下面通过一个示例学习是static的用法及使用static修饰属性和代码块,是如何分配内存空间的.代码示例如下: 运行结果如图所示: 从结果中可以得

static 修饰用法

如有不足,多多指导. static 可以修饰属性,方法,静态代码块 修饰属性:全类共有的属性,可以通过类名.属性获取 在创建对象的时候加载 2. 修饰代码块 static { } 3. 修饰方法 public static void m(){} 这里主要说下 加载时候的先后顺序 类加载顺序 1.父类静态属性/父类静态代码块 (书写的先后顺序) 2.子类静态属性/子类静态代码块  (书写的先后顺序) 3.父类实例属性/父类动态代码块   (书写的先后顺序) 4.父类构造方法 5.子类实例属性/子类

C++static关键字用法

一.static的作用有三种:限制变量或函数作用域.保持变量内容的持久.默认初始化为0 1.被static关键字修饰的全局函数或者变量具有文件作用域,即只在当前文件中可见. 2.被static修饰的变量会被存储在静态存储区,生命周期也为从定义直至程序结束.对于局部变量,即使在函数退出后该静态变量依然存在,然而却也无法访问.此外,static修饰的变量一生只会被初始化一次(这点经常被用作面试的小题,需注意). 3.正是因为被static修饰的变量会被存储在静态存储区,所以才有了这个一条.因为静态存

私有静态方法private static method-值得用吗?

用Resharper的同学都知道,如果你写了一个私有函数,这个函数没有访问类里面的其他参数和方法,那么它建议你标记这个方法为私有静态方法,提示是这样的: 值得这样做吗?看看微软的建议: After you mark the methods as static, the compiler will emit non-virtual call sites to these members. Emitting non-virtual call sites will prevent a check at

static 的用法

static 英文意思是 “静态的”. 在C 语言中,它用在 函数或变量前面. 1. 用在变量前面,它表示该变量是静态变量,意思是说,这个变量放在内存的静态区域,即使作用域结束,值也会一直保存着, 不会像变量那样,随作用域结束而释放所占的内存. static修饰的变量作用域有两种:1)修饰全局的变量,作用域在声明的文件中,其他文件不可调用. 2)修饰局部的变量,作用域在局部变量所在的函数中,其他函数不可见该变量. 2. 用在函数前,表示静态函数,不能被当前文件之外的其他文件调用. static

C#类中static变量用法分析

本文实例讲述了C#类中static变量用法.分享给大家供大家参考.具体分析如下: 先来看一段代码: 代码如下: using System; namespace Param { class Class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNum() { return num; } [STAThread] static void Main(string[] args) { Co