java学习记录分享(四)

this关键字

	this指的是当前实例对象,可以在构造方法内部区分同名的成员变量和局部变量
可以用于调用构造方法,减少代码冗余。(在构造方法中通过this调用其他构造方法
的语句必须是第一句),this也可以调用成员属性和成员方法
class Person{
				String name;
				int age;
				String address;
				public Person(String name,int age){
					this.name=name;	//左值this.name表示Person对象的那么属性,
					this.age=age;			//右值name表示构造函数的形参那么name。		
				}
				public Person(String name,int age,String address){
					this(name,age);	//表示调用有name和age两个参数的构造函数
					this.address=address;
				}
				void hello(){
					System.out.println("hello....");
				}
				void introduce(){
					this.hello();			//调用Person对象的hello方法,这里可以省略this. 
				}							//因为没有同名方法,属性同理
		}

static关键字

	表示静态的,可以修饰变量和方法,可以通过类名直接调用
	修饰成员变量时,称为静态变量,或者类变量;
	修饰方法时,称为静态方法,或者类方法。
	*静态变量不会存储在实例对象中,举个例子
class Calculator(){
			static int num1=1;
			int num2=2;
			void a1(){
				num1=8;
				num2=8;
			}
		}
		public static void main(String[] args){
				Calculator c1=new Calculator();
				Calculator c2=new Calculator();
				c1.a1;
				System.out.println("num1"+c2.num1);   	 //值为8
				System.out.println("num2"+c2.num2);		 //值为2
			}
	一个类中的static成员在该类被使用的时候就被分配空间并赋值,初始值为null或者0。
class A(){
			static A ins =new A(1);
			static int num1=5;
			int num2;
			A(int num3){
				num2=num1-num3;
			}
		}
		public static void main(String[] args){
			System.out.println(A.ins.num2);				//值为-1
			System.out.println(new  A(1).num2);			//值为4
		}
	分析,第一个打印直接使用A类的ins静态变量,在使用A类的时候给static的成员分配空间
(数值型默认为0,其他默认为null),ins需要使用A的构造方法,把num3的值传进去,执行语句
num2=num1-num3=0-1=-1
第二个打印直接new了一个A对象,会先给这个对象分配空间并赋值,就是正常得出4的结论
//静态方法使用注意事项
在实例方法中调用静态方法(属性)时可编译的
而在静态方法中调用实例方法(属性)时是不行的,因为不能保证静态方法调用时存在实例方法
谨慎静态使用static,其生命周期过长
在静态方法中不能使用this关键字
举个例子
class A(){
		int age;
		void mA(){
			age=20;
		}
		static void mb(){
			age=10;				//age此时并未被加载,报错
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值