学习记录

函数的参数传递
      ——基本数据类型的参数传递
以实参做为参数传递给函数 不会因函数的修改发生变化
以对象作为参数传递给函数 会因函数的对此参数的修改发生变化
数组与对象同理

Class PassParam
{
   int x;
   public static void main(Sting [] args)

    PassParm obj=new PassParam();
    obj.x=5;
    chang(obj);
    System.out.println(obj.x);
 }
    public static void change(PassParam obj)
{    
     obj.x=3;
}
此时 输出的x值为3 数组与之同理
 


static 静态方法
当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必再每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。

static的成员变量是每个对象共有的,只有一份,普通成员变量时每个对象所独有的

class Chinese
{
   private int count=0;
   String name;
   public Chinese()
  {
    System.out.println(++count);
}

class TestChinese
{
   public static void main(String [] args)
 {
    new Chinese();
    new Chinese();
    new Chinese();
}
}
输出结果为 1
           1
           1
如果改为private static int count=0;
则输出结果为1
            2
            3
main()方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main()方法中,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员。

可以用类名.方法去调用 可以直接调用静态方法   

在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中非静态成员。这是因为,对于非静态成员,需要先创建类的实例对象后才可以使用,而静态方法在使用前不用穿件任何对象。
静态方法不能以任何方式引用this和super关键字。静态方法在使用前不用创建任何实例对象,当静态方法被调用时,this所引用的对象根本就没有产生。

static
{
     count=2;
  
}
静态代码块
一个类中可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态代码块经常用来进行类属性的初始化

类中的静态代码块被自动执行,尽管我们产生了类的多个实例对象,但其中的静态代码块只被执行了一次。当一个程序中用到了其他的类,类是在第一次使用的时候才被装载,而不是在程序启动时就装载程序中所有可能要用到的类。

单态设计模式
所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中 只产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,单在类的内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量必须定义成静态的。


内部类
嵌套类可以直接访问嵌套它的类的成员,包括private成员,但是,嵌套类的成员却不能被嵌套它的类的成员访问。
 

    
 

如果用static修饰一个内部类,这个类就相当于是一个外部定义的类,所以static的内部类中可声明static成员,但是,非static的内部类中的成员是不能声明为static的。static的内部类不能再使用外层封装类的非static的成员变量,这个道理不难想象!所以static嵌套类很少使

内部类中使用变量
public class Outer
{
    private int size;
   public class Inner
{
   private int class;
 public void doStuff(int size)
 {
   size++;引用的是doStuff函数的形参
   this.size++;引用的是Inner 类中的成员变量
    Outer.this.size++;引用的是Outer类中的成员变量
  }
}
}
在方法中定义的类 无法访问方法中定义的变量,在变量前加final就可以(使变量超出其使用范围)

通过javadoc.exe 将注释提出出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值