JAVA面向对象易错小结

JAVA面向对象--易错小结


一、使用对象

         (1)对象操作自己的变量(对象的属性)
         (2)对象调用类中的方法(对象的功能)

二、匿名对象

         只使用一次的对象,称为匿名对象。
         匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。

        public static void main(String args[ ]) 
        {
	   new Person("Tom", 18).shout( );     // 匿名对象
        }

三、this关键字


      1.  引用当前对象的成员变量。   格式:this.成员变量名;
     

      2.在构造方法中使用this           代表使用该构造方法所创建的对象。
    

      3.在实例方法中使用this     代表使用该方法的当前对象。 格式:this.方法名。

    以上情况均可省略this。


必须使用“this”的场合

         (1)区分成员变量和局部变量
           成员变量在整个类内有效,局部变量仅在方法内有效。在方法体中声明的变量以及方法的参数是局部变量,方法的参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。
             如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,需要在成员变量之前加上this.。
         (2)在一个构造方法里调用其他重载的构造方法
          此外,若要在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,而且必须是第一条语句。


public class Person
{
	String name;
	int age;
	Person(String name)
	{
		 this.name = name;
	}
	Person(String name , int age)
	{
		this(name);
		this.age = age;
	} 
}


四、static 关键字 

 用关键字static修饰的成员变量称作静态变量或类变量,而没有使用static修饰的成员变量称作实例变量。例如,下述A类中,x是实例变量,而y是类变量。

        class A 
       { 
            float x;
            static int y;
        }

无论是否产生了对象或无论产生了多少对象的情况下,类变量在内存空间里只有一份


五、静态代码块


在程序中无论多少实力对象,静态代码块都只被执行一次,静态块经常用来进行类变量的初始化。

当一个程序中用到了其他的类,类是在第一次被使用的时候才被装载,而不是在程序启动时就装载程序中所有可能要用到的类

静态代码块优先于主方法执行,在类中定义的静态代码块会优先于构造块。

class StaticCode{
     static String country;
     {
           System.out.println("aaa");
     }
	static
	{
		country = "China";
		System.out.println("bbb");
	}
      StaticCode( ) { 
                System.out.println("ccc.");  
      }
}
class TestStaticCode{
	static
	{
		System.out.println("ddd");
	}
	public static void main(String[ ] args){
		new StaticCode( );
		new StaticCode( );
	}
}

输出的结果

ddd

bbb

aaa

ccc

aaa

ccc


可以看到静态代码块指执行一次,且静态代码块优先于主方法执行,在类中定义的静态代码块会优先于构造块










  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值