javaSE—包&封装&this

包:
  • 概念:
    • 就是一个文件夹,为了方便代码的管理,减少程序员的负担,更容易找到要找的代码
  • 命名规范:
    • 包名全部大小写
    • 在使用的时候记得用 import导入包
  • java的主要的包
    • java.lang包是java的核心包,例如:我们常用的 system就是在里面的,会进行自动的调用,不需要导包
    • java.util.* 是表示导入这个包中的类,但是不会导入他的子类
封装:
  • 概念:
    • 是为了解决变量赋值取值不安全的问题
  • 怎么用?
    • 我们在一个类中进行变量的操作的时候,成员变量可以直接用对象名去调用属性名,然后去赋值或者改值,这样的话不安全
    • 因此我们用到封装,将变量的赋值和取值放在方法中去,就会安全很多,不会直接去对成员变量赋值取值
this:
  • 概念:

    • 指向的是这个变量或者对象
  • 用法:

    • 在方法中,我们在给成员变量进行取值赋值的时候,我们要用到
    • this.属性名
  • this的四种用法:

    • 在set方法中,我们会传参进入方法,这个时候,为了见名知意,我们会通常和变量名一样,那么就会存在同名不同义的问题

    • this就是为了解决这个问题,通过this可以指向成员变量,也可以指向对象

      • 第一种用法:

        • 在set方法中 this.属性 = 传入进来的属性
      • 第二种用法:

        • 在有参构造中,我们可以设置多个有参构造,用this去代替上面的构造方法,具体看代码:

          •  public Model() {
                }
              
                /**
                 * 以下几个构造方法是表示调用构造方法,对上面已经进行赋值的构造方法拿来用
                 * 使用语法
                 *      this() 括号里是上面的构造方法已经赋值过的变量名
                 * @param name
                 */
                public Model(String name) {
                    this.name = name;
                }
              
                public Model(String name, String sex) {
                    this.name = name;
                    this.sex = sex;
                }
              
                public Model(String name, String sex, int age) {
                    this.name = name;
                    this.sex = sex;
                    this.age = age;
                }
              
                public Model(String name, String sex, int age, double chestMeasurement) {
                    this.name = name;
                    this.sex = sex;
                    this.age = age;
                    this.chestMeasurement = chestMeasurement;
                }
              
                public Model(String name, String sex, int age, double chestMeasurement, double waistline) {
                    this.name = name;
                    this.sex = sex;
                    this.age = age;
                    this.chestMeasurement = chestMeasurement;
                    this.waistline = waistline;
                }
              
                /**
                 * 在构造方法中的this,指向的是成员变量,在构造方法中,会将传进来的值进行 赋值操作,把传进来的形参赋值给成员变量
                 * @param name
                 * @param sex
                 * @param age
                 * @param chestMeasurement
                 * @param waistline
                 * @param hipline
                 */
                public Model(String name, String sex, int age, double chestMeasurement, double waistline, double hipline) {
                    this.name = name;
                    this.sex = sex;
                    this.age = age;
                    this.chestMeasurement = chestMeasurement;
                    this.waistline = waistline;
                    this.hipline = hipline;
                }
            
        • 第三种用法:

          • 作为返回值返回 :this持有对象地址,表示该类的一个对象即是一个数据。 了解即可
        • 第四种用法:

          • 作为参数传递,了解即可
  • 注意事项:

    • this不能在静态的方法中使用: 无法从静态上下文中引用非静态成员this
    • static是级别,this是对象级别,因此static会比this优先加载
      • static修饰的是属于类。
      • this是属于某一个具体的对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值