作用域(scope)/构造器/this关键字

1、在java编程中,主要的变量就是属性(成员变量)和局部变量

2、局部变量一般是指在成员方法中定义的变量

java中作用域的分类:

全局变量:也就是属性,作用域为整个类体

局部变量:除了属性外的其他变量,作用域为定义它的代码块中

全局变量可以直接使用,不赋值,因为有默认值,局部变量无默认值,不可以直接使用

 

注意事项和使用细节

1、属性和局部变量可以重名,访问时遵循就近原则

2、在同一个作用域中,比如在同一个成员方法中,两个局部变量不能重名

3、属性的生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。局部变量生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的执行而销毁。

4、全局变量即可以被本类使用,也可以被其他类使用。局部变量只能在本类对应的方法中使用

5、全局变量可以加修饰符,局部变量不可以加修饰符

构造器:又叫构造方法,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化

基本语法:修饰符 方法名(形参列表){

方法体

}    注:构造器的修饰符可以默认   构造器的方法名必须和类名相同    构造器没有返回值  构造器的调用由系统完成

例:

class Person{

 String name;int age;

public Person(String pname,int page ){

name=pname;

age=page;

}

}

在main栈中创建对象时可以直接填入name和age,如Person p1=new Person("wu",23);

构造器的注意事项和使用细节

1、一个类可以定义多个不同的构造器,即构造器重载

2、构造器是完成对象的初始化,并不是创建对象

3、如果程序员没有定义构造方法,系统会自动给类生成一个默认无参的构造方法,如 Person(){};

4一旦定义了自己的构造器,默认的构造器就被覆盖了  ,除非显示定义一下 。如 Person(){}

对象创建流程分析

例:class Person{

int age = 80;

String name;

Person(String n,int a){

name=n;

age=a;

}

}

Person p1=new Person("张",20)

1、加载Person类信息(只加载一次)

2、在堆中分配空间(地址)

3、完成对象初始化

[

3.1默认初始化 age=0;name=null;

3.2显式初始化 age=80;name=null;

3.3构造器的初始化 name=20;name=张

]

4、在对象在堆中的地址,返回给p

 

this关键字

简单地说,哪个对象调用,this 就代表哪个对象

使用的注意事项:

1、this关键字可以用来访问本类的属性、方法、构造器

2、this用来区分当前类的属性和局部变量(如局部变量名为name,属性名也为name,则用this.name来获取属性中的name)

3、访问成员方法的语法:this.方法名(参数列表)

4、访问构造器的语法:this(参数列表);注意只能在构造器中使用(即只能在一个构造器中访问另外一个构造器),且放在第一条语句

5、this不能在类定义的外部使用,只能在类定义的方法中使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值