Java之面向对象(二)

private和封装

private关键字

private关键字 就是一个权限关键字 public protected 默认不写
private关键字 表示私有权限 该成员变量或成员函数只能够在类中被访问 外界不可访问

一旦相关属性或者方法被定义为私有化之后,要使用时直接要进行get和set方法(属性)。例如下面这个例子

class Point{    
    private double x;    
    private double y;    
    public Point(){    
    
    }    
    public Point(double x,double y){        
        this.x=x;        
        this.y=y;    
    }    
    public double getDistance(Point other){        
        return Math.hypot(x-other.x,y-other.y);    
    }    
    public void setX(double x){        
        this.x=x;    
    }    
    public void setY(double y){        
        this.y=y;    
    }    
    public double getX(){        
        return this.x;    
    }        
    public double getY(){        
        return this.y;    
    }
}

封装

在类中定义好相应的属性和方法之,在使用时直接进行生成类然后再进行调用相关类中的方法。

成员变量与局部变量的区别

   1.存储位置
        局部变量存储在栈内存中函数的所属空间里
        成员变量存储在堆内存中对象的所属空间里
    2.生命周期
        局部变量随着函数的进栈而存在,随着函数的弹栈而消失
        成员变量随着对象的创建而存在,随着对象的销毁而消失
    3.访问范围
        局部变量的访问范围仅仅在函数当中
        成员变量的访问范围在当前类中
    4.初始化值
        局部变量必须先进行初始化 之后再能被调用
        成员变量在创建时有默认初始化

成员变量的赋值其实经历了三个阶段

默认初始化-    显式初始化  -      针对性初始化
                  类中成员变量被赋值        构造函数

构造函数

格式为 权限修饰符+类名 (参数列表){

 ......

}

构造函数的主要作用

在创建对象之时对成员变量进行赋值操作。

注意点:

  1. 没有函数类型关键字
  2. 没有返回值类型(并不意味着没有return)
  3. 函数名必须是类名
  4. 但凡创建一个对象 构造函数就执行一次
  5. 构造函数只在创建对象的时候调用 而且仅仅调用一次

            成员函数在创建对象之后调动 可以调用任意次数
            成员函数能否调用成员函数 可以
            成员函数能否调用构造函数 不可以的
            构造函数能否调用成员函数 可以 只不过此时的成员函数不应该当做对象的特有行为而向外界提供的

一般类中构造函数执行流程:   

  1. 在堆内存中开辟一个空间并分配地址
  2. 对成员变量进行【默认初始化】
  3. 相应的构造函数进栈 刚开始就对成员变量进行【显式初始化】
  4. 接着再去执行构造函数中的内容【针对性初始化】
  5. 构造函数执行完毕 弹栈 将对象的地址赋值给相应变量即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值