JAVA笔记【20131205】

一、静态变量

Java中使用static修饰的变量,表明内存中只有一个该变量,在类中也即意味这该变量被类的各对象所共用。例如:

class Employee
{
	private int id ;
	private static int nextId = 1 ;
}

一般变量id与静态变量nextId,有多少个Employee对象,就有多少个一般变量id,但只有一个静态变量nextId,也即这些对象共用这一个nextId。


二、静态常量

静态常量一般用static final修饰,静态常量只能初始化一次。类中的静态常量可以直接使用类名.常量名调用。


import java.util.* ;
public class Test14
{
	static final Date sDate = new Date(); //初始化
	public static void main(String[] args)
	{
		System.out.println("s1="+sDate);
		//sDate = new Date();      //此处无法对静态常量sDate再进行赋值,否则编译时会报错
		//System.out.println("s2="+sDate);
		sDate.setTime(1000000);    //但此处可以调用Date类自身的方法(本地方法)修改时间
		System.out.println("s3="+sDate);
	}
}

java.math.*中的PI以及java.lang.System中out等都属于静态常量。


三、静态方法

静态方法使用static修饰,静态方法中不能访问实例域,但可以使用自身类中的静态域。静态方法可以直接使用类名.方法名调用。

class Employee
{
	private int id ;
	private static int nextId = 1 ;
	
	public static int getId() //静态方法
	{
		//return id;     //静态方法中访问了实例域id,编译时会报错。
		return nextId;   //静态方法中使用自身类Employee中的静态域nextId。
	}
}

使用静态方法的情况:

1、当一个方法不需要访问类状态,所需参数都是通过显示参数提供的。

2、当一个方法只需要访问类的静态域的。


四、main方法

关于Java中main方法是不对任何对象进行操作,再程序启动的时候也没有任何对象。静态的main方法将执行并创建程序所需的对象。

每一个类都可以有一个main方法,这点可以用于单元测试中。

例如:Test16.java文件中类Test16和类Employee都有main方法,执行命令java Employee,则执行Employee类中的main方法。

            执行java Test16则Test16类中的main方法被执行,Employee类中的main方法永远不会执行。


public class Test16
{
	public static void main(String[] args)
	{
		Employee staff1 = new Employee("wange",0002);
		String name = staff1.getName();
		System.out.println("name:" + name);
		int tempId = Employee.getNextId();
		System.out.println("tempId:" + tempId);
		Employee staff2 = new Employee("lisi",0003);
		name = staff2.getName();
		System.out.println("name:" + name);
		tempId = Employee.getNextId();
		System.out.println("tempId:" + tempId);
	}
}

class Employee
{
	public Employee(String name,int id)
	{
		this.name = name;
		this.id = id;
		nextId++;
	}
	
	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public float getSalary()
	{
		return salary;
	}

	public void setSalary(float salary)
	{
		this.salary = salary;
	}
	
	public static int getNextId()
	{
		return nextId ;
	}
	private String name;
	private int id;
	private static int nextId = 0; 
	private float salary ;
	
	public static void main(String[] args)   //单元测试
	{
		Employee temp1 = new Employee("zhangs",0001);
		String name = temp1.getName();
		System.out.println("name:" + name);
		int tempId = Employee.getNextId();
		System.out.println("tempId:" + tempId);
	}
}

执行结果:



五、方法参数

Java中参数传递都是使用的值传递,也即方法所得的是所有参数值的一个拷贝,方法不能修改传递给它的任何参数变量的内容。

当然如果传递的参数是一个对象,该对象有修改内容的方法,则可以修改对象中内容,但不能让对象参数引用一个新的对象。

例如:

public class Test17
{
	public static void main(String[] args)
	{
		int tempInt1 = 100;
		int tempInt2 = 99;
		Employee staff1 = new Employee("wange");
		Employee staff2 = new Employee("lisi");
		
		ExchangeInt(tempInt1,tempInt2);                    //tempInt1与tempInt2值并未交换
		System.out.println("tempInt1:" + tempInt1);
		System.out.println("tempInt2:" + tempInt2);
		
		ExchangeEpy(staff1,staff2);                        //对象staff1和staff2并未交换
		System.out.println("staff1:" + staff1.getName());
		System.out.println("staff2:" + staff2.getName());
		
		TestEmployee(staff1);
		System.out.println("staff1:" + staff1.getName()); //修改了对象staff1中的name值
	}
	static void ExchangeInt(int i,int j)
	{
		int temp = i;
		i=j;
		j=temp;
	}
	
	static void TestEmployee(Employee epy)
	{
		epy.setName("wangeUpdate");
	}

  static void ExchangeEpy(Employee epy1,Employee epy2)
  {
  	Employee tempEpy = epy1;
  	epy1 = epy2 ;
  	epy2 = tempEpy;
  }
	
}

class Employee
{
	public Employee(String name)
	{
		this.name = name;
	}
	
	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}
	private String name;
}

执行结果:



具体可以如下理解:


总结java中参数传递:

套用java2核心技术内的总结,

1、一个方法不能修改一个基本类型的参数。

2、一个方法可以修改一个对象参数的状态。

3、一个方法不能让对象参数引用另外一个参数。





阅读更多
个人分类: JAVA基础知识
上一篇JAVA中final用法【20131205】
下一篇JAVA笔记【20131206】
想对作者说点什么? 我来说一句

java 学习笔记注意事项

2011年05月20日 64KB 下载

ctp_api最新的windows版

2014年04月21日 743KB 下载

我的java笔记

2018年01月24日 260KB 下载

java笔记,快速入门java

2009年04月25日 167KB 下载

java j2se部分笔记

2009年06月05日 38KB 下载

java笔记java笔记

2009年08月10日 27KB 下载

Java笔记.txt

2011年01月13日 159KB 下载

java笔记 java笔记 java笔记

2011年10月21日 38KB 下载

没有更多推荐了,返回首页

关闭
关闭