成员变量 局部变量 封装 标准类 this关键字 匿名对象

1.成员变量和局部变量的区别

2.形式参数如果现在是一个类(除了String类),它作为形式参数有什么特点

3.在一个学生类中,给学生的年龄属性赋值—赋值为负数----不合理------封装

4.一个标准类写法:

属性私有化,对外提供公共的访问方法

5.this 关键字


1.局部变量和成员变量的区别:

1.在类中的书写的位置是不同的
	局部变量:方法定义中或者方法声明上
	成员变量:类中,方法外
	
2.内存中的位置是不同的
	局部变量:栈内存中,与方法有关
	成员变量:内存是堆内存中,与对象有关

3.生命周期不同
	局部变量:随着方法的调用而存在,随着方法的调用结束而消失
	成员变量:随着对象的创建而存在,等待垃圾回收器回收而消失
	
4.初始化不同
	局部变量:必须要在使用之前赋值,不赋值就报错
	成员变量:不用初始化,系统默认赋值(int--0;double---0.0;String----null)
	

数组和对象都是在堆内存中存在的,都可以通过数组与数组(或者对象与对象)之间的赋值(他们之间的赋值实际上是将其地址值赋给了另一个)而间接的改变原来数组(或者对象)中元素的值

不同的栈内存指向同一个堆内存

形式参数如果是应用类型(类作为参数)

如果形式参数是引用类型:自定义类,传递的时候,实际参数需要的是当前类的具体对象

	public void method(Student student) //自定义类作为形式参数
	
传递的是该类的对象(也就是一个空间地址值)

匿名对象

匿名对象:没有名字的对象
匿名对象的格式:
		new 类名();
		特点:
			1.匿名对象:使用完毕,会立即被垃圾回收器回收,节省空间
			应用场景:都是在移动端使用居多         new Student().method.();
			
			2.开发中,匿名对象一般都是使用一次(使用完毕会立即被回收)
			3.匿名对象可以进行参数传递()
			new StudentDemo().method(new Studentz());    链式编程(开发中很少使用)
			

封装

 将一个类中的成员变量(属性)私有化,对外提供公共的访问方法,来保证类的安全
 	目的:为了外界不能够直接访问
 	private(私有)关键字:private修饰的成员变量,成员方法只能在本类中访问
 			
 			

标准类写法

注意:同一个包下(文件夹)不能存在同一个类名

public class Person {
    //定义成员变量并且属性私有化
    private String name;
    private String sex;
    private int age;
    private static String nationality="cn";
    //定义公共访问的成员方法,供外界访问使用
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }

    public void setSex(String sex){
        this.sex=sex;
    }
    public String getSex(){
        return sex;
    }

    public void setAge(int age){
        this.age=age;
    }
    public int getAge(){
        return age;
    }
    //static 定义的成员方法是独立于对象而存在的
    public static String getNationality(){
        return nationality;
    }

    public Person(){
        System.out.println("调用了无参构造方法创建对象");
    }
    public Person(String name,String sex,int age){
        System.out.println("调用了有参构造方法创建对象");
        this.name=name;
        this.sex=sex;
        this.age=age;
    }

}

 

this关键字

为了使变量见名知意,故而引入了this关键字,
例如:this.name=name;  
	this.age=age;
	this.sex=age;
this:代表当前这个类对象的地址值引用,引入this是为了区分成员变量和局部变量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值