java基础3_2(2011 06 12)

一、对象作为函数的参数传递时发生的情况

1、基本数据传递情况

2、对象的引用变量作为参数传递的情

public class PassParam
{
 int x;
 public static void main(String[] args)
 {
  int x=5;
  change(x);
  System.out.println(x);
  
   PassParam obj  = new PassParam();
   obj.x = 5;
   change(obj);
   System.out.println(obj.x);
 }
 public static void  change(int x)
 {
       x=3;
 }
 public static void  change(PassParam obj)
 {
  obj = new PassParam();
       obj.x=3;
 }
 public static void  change(int[] x)
 {
       x[0]=6;
 }

}

用图示的方法来表示:

函数的参数传递

二、static静态变量

1、static静态数据在内存中只有一份拷贝

2、非静态静态的方法可以直接访问静态变量,我们可以使用private static  放在构造方法中来统计一共创建了几个实例对象。

例如:class Chinese

{

  private static int count = 0;

public Chinese()
 {
  count++;
  System.out.println("count="+count);
 }

说明:每创建一个Chinese对象就会调用一次public Chinese()这个构造方法,假如 private static int count = 0;不加上static的话,运行,不能得到正确的结果,因为每调用一次构造方法,就会产生一个新的count,也就是说它在内存中有多份拷贝。

注意:

(1)静态方法不能以任何方式引用this或super关键字。

(2)静态方法只能调用调用同类中的静态成员,不能直接访问类中非静态成员。

3、静态代码块

格式:

static{} 用来初始化变量

4、单态设计模式:就是采取一定的方法保证在整个软件系统中,对某个类只能有一个对象实例。并且只提供一个取得对象实例的方法。

一般格式:

class Chinese
{
 static Chinese objRef = new Chinese();
 static
 {
  count = 2;
  System.out.println("static block");
 }
 String name;
 int age;
 public static Chinese getInstance()
 {
  return objRef;
 }

 private Chinese()
 {
  count++;
  System.out.println("count="+count);
 }

在外面调用这个方法时,只能这样子调用:Chinese obj1 = Chinese.getInstance();

三、public static void main(String[] args)各部分的解释

1、main方法不用创建实例对象因为有static的存在2、main方法被外面调用,所以它没有返回值

3、String[] args是一个数组,你在键盘上传入什么就能打印什么。

System.out.println(args[0]);
System.out.println(args[1]);

在运行时,就要传入参数,否则会出错。

四、java的内部类(也叫嵌套类)

1、在内部类可以访问外部类的变量,在外部类中访问内部类时,应先实例化对象后、才能使用。

2、当内部类的成员方法访问某一变量时,如果方法内部类都没有定义,那么内部类对this的引用会被传递到外部类对象的引用。

3、如果static修饰一个内部类,那么这个类就相当于外部类,非static的内部类的成员不能声明为static的。加上static内部类是不能再使用外层封装类的非static的成员变量的。其实,static的内部内很少使用。

4、关于内部类的一个特殊的例子

内部类的一个特例

5、假如内部类是用public定义的,那么在其它类中也可以使用

6、内部类可以在几个程序块的范围内定义 比如在方法中,甚至可以在for循环语句中。

7、用final定义的局部变量相当于是一个常量,生命超出方法的运行周期(注意:在方法中定义的变量应初始化后才使用)

五、java的文档注释

使用?/* */符号在类定义和方法定义前进行注释

例如

import java.io.*;
import java.security.PublicKey;
/**
 * Title Engineer类</br>
 * Description:通过Engineer类来说明java文档中的文档注释</br>
 * Copyright:(c) 2003 www.baidu.com
 * Company:chenzemin</br>
 * @author chenzemin1
 * @version 1.70
 */
public class Engineer
{
 public String Engineer_name;
 /**
  * 这是Engineer对象的构造函数
  * @param name Engineer的名字
  */
 public Engineer(String name)
 {
  /**
   * 这是repairing方法的说明
   * @param sum 需要修理的机器的总数
   * @param alltime 需要修理的总时间
   * @param Repairing的数量
   */
 }
  //public int repairing(int sum,int alltime)
  {
   
  }
 
}

使用命令 javadoc -d 生成类的名字 -author -version 源文件  的格式运行后会产生一些.html格式的文件,打开index.html可以看到如下效果:

doc文档

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值