深圳企业网站定制网站搭建软件d
1、局部变量
【问题1】:什么是局部变量?
 答:定义在局部位置的变量就是局部变量。
【问题2】:什么是局部位置?
 答:方法的形参位置、方法体的内部。
【位置关系图】:
 class Xxx {
     //成员位置
     public ...(局部位置) {
         //局部位置
     }
     //成员位置
 }
作用:限制变量的使用范围
 成员变量和局部变量的区别:
1).代码定义位置
成员变量:定义在类的成员位置;
 局部变量:定义在类的局部位置;
2).作用域
成员变量:作用域大,可以在整个class的大括号内部被使用;
 局部变量:作用域小,只能在定义的作用范围内被使用;
3).内存所在位置
成员变量:在堆中;
 局部变量:在栈中;
4).默认值
成员变量:有默认值;
 局部变量:没有默认值;
5).生命周期现象
成员变量:随着对象在堆中被创建也一并生成,随着对象被gc回收一并被清理;
 局部变量:随着方法进栈在栈中创建空间区域,随着方法的弹栈也一并被回收;
 2、类和对象的关系
搭建场景:
对象:某人、某车、某房子...
类型:老师(Teacher)
类型:
     由多个对象共性内容进行抽取得到的抽象描述,称为:类型;
     类可以理解为一张设计图,创建对象的模板。
对象:
     通过类的实例化得到,在内存中占用资源 ==> 实实在在的个体;
     一旦得到了对象就可以访问类中的成员完成需求。
 3、面向对象特性之封装性
生活层面:食品、快递、机箱...
作用:提高安全性
程序层面:
     1)、类、方法
     2)、私有化与隐藏
关键字:private
 实例化对象完毕后,使用对象名.属性名的方式为对象属性进行显示赋值操作,
 很有可能赋的值会违背生活的逻辑和常态 ==> 数据不安全
 所以我们考虑没收外界对象名访问属性的权利,私有化该属性 ==> 使用private修饰
 在本类中提供外界访问属性的一组公共的方法(getter&setter)
 格式如下:
     getter方法
         public 数据类型 get属性名(){
             return 属性名;
         }
    setter方法
         public void set属性名(数据类型 形参名){
             属性名 = 形参名;
         }
举例:
     属性:private double money;
    getter方法:
         public double getMoney(){
             return money;
         }
    setter方法:
         public void setMoney(double m){
             money = m;
         }
【结论】:
     在之后的学习和开发环境下,绝大多数情况,类中的属性都需要被私有化,
     并且提供对应的getter&setter方法,记住:上述两个方法内部都不需要提供数据合理性校验操作
 4、this关键字
使用在三个领域/三个作用:
1)、记录了正在被创建或者已经创建完毕对象的内存地址;
 2)、区分同名的成员变量和局部变量;
 3)、本类重载构造方法之间相互调用。
5、this关键字
第三个作用:本类构造方法之间相互调用
格式:
     this(...);
注意:
     1)、构造方法内部调用本类重载构造,只能在首行位置进行调用
     2)、构造方法之间相互调用不能形成闭合回路
 6、static关键字
解释:静态的
核心理解:
     1)、静态的成员和类有关,非静态的成员和对象有关;
     2)、类加载要远远早于对象加载 ==> 先有类,后有对象;
     3)、早出现的不能调用晚出现的,晚出现的可以调用早出现的。
修饰的领域:
1)、修饰方法
称为:静态方法、类方法
 格式:
     类名.静态方法名(...);
好处:
     不依赖于对象,即不需要创建对象,类名直接调用
     理解:
         1)、代码定义更加简洁;
         2)、更加节省内存资源,提高开发效率。
【问题】:什么方法需要设计为静态方法,什么方法需要设计为非静态方法?
       答:在设计自定义方法的过程中:
       发现方法体中不需要访问调用非静态成员(属性、方法),则该方法可以设计为静态方法,
       返之一旦方法体中有访问调用非静态成员(属性、方法),则该方法就必须设计为非静态方法。
 2)、修饰属性
称为:静态属性、类属性
访问静态属性的格式:
     类名.静态属性名
好处:
     静态属性和类有关,不依赖于对象,不需要创建对象
     理解:
         1)、代码定义更加简洁;
         2)、更加节省内存资源,提高开发效率。
【问题】:什么属性可以被定义为静态属性,什么属性可以被定义为非静态属性?
       答:某属性对于该类所有对象都是唯一的值,则该属性可以被定义为静态属性;
       否则就必须定义为非静态属性。
本电子书目录:《Java基础的重点知识点全集》
