Java 封装与构造器和属性赋值的先后顺序 -14天 学习笔记

封装

  • 该露的露,该藏的藏

我们程序设计要追求”高内聚,低耦合”。

​ 1. 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;

​ 2.低耦合:仅暴露少量的方法给外部使用。(比如计算机只外露一些接口等,详细的东西都封装在机器里)

  • 封装(数据的隐藏)

  • 通常,应禁止直接访问- -个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。

记住这句话就够了:属性私有,get/set

import com.oop.Demo04.Studen;

/*
1.提高程序的安全性
2.隐藏代码的实现细节
3.统一接口
4.系统可维护增加
 */

//一个项目应该只有一个main方法
public class Application {

    public static void main(String[] args) {

         Studen x = new Studen();
         x.setName("小明");
        System.out.println(x.getName());
        x.setNumber(12);
        //快捷键 x.getNumber().sout
        System.out.println(x.getNumber());
        x.setSex('男');
        System.out.println(x.getSex());
        //不合法的
        x.setNumber(371293712);
        System.out.println(x.getNumber());
    }

}
package com.oop.Demo04;
//类
public class Studen {
    //private  属性私有,不能正常调用
    //性别
    private char sex;
    //名字
    private String name;

    //学号
    private int number;

    //学习()
    private void  study(){

    }
   //提供一些可以操作这个属性的方法。
    // 提供一些public的get/set方法
    //只有get就代表只读不写反之就是只写不读

    //get获得这个数据
    public char getSex (){
        return this.sex;
    }
    public String getName(){
        return this.name;
    }
    //set  给这个数据设置值;
    public void setName(String name){
        this.name = name;
    }
    public void setSex(char sex){
        this.sex = sex;
    } //也可以设置一样的名字重载
      public void setSex(char sex,int a){
        this.sex = sex;
    }
    //alt +回车  选getter,setter 或者两个一起
    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        //因为封装可以做安全性的检测
        if(number > 99999 || number< 0 ){
             this.number = 0;
        }else{
            this.number = number;
        }

    }
    
}

在Java中判断两个类是否相同我们其实主要看两个东西

//方法名 参数列表 方法的重载

构造器

  1. 构造器的特征
  • 它具有与类相同的名称
  • 它不声明返回值类型。(与声明为void不同)
  • 不能被static、 final、 synchronized、 abstract、 native修饰,不能有
    return语句返回值
  1. 构造器的作用: 创建对象;给对象进行初始化
    如: Order o = new Order(); Person p = new Person(“Peter”,15);
  • 如同我们规定每个“人”一出生就必须先洗澡,我们就可以在“人” 的
    构造器中加入完成“洗澡”的程序代码,于是每个“人”一出生就会自
    动完成“洗澡”,程序就不必再在每个人刚出生时一个一个地告诉他们
    要“洗澡”了。
  语法格式:
    修饰符 类名 (参数列表) {
    初始化语句;
    public class Demo01 {
      public static void main(String[] args) {
        Person p1 = new Person("Tom");
        System.out.println(p1.name);

      }
    }
     class Person {
        //属性
       String name;
       int gae;
       //构造器
        public Person(){
            //无参构造
        }
        public Person(String n){
            name = n;

        }
    }
 }

  1. 根据参数不同,构造器可以分为如下两类:
    隐式无参构造器(系统默认提供)
    显式定义一个或多个构造器(无参、有参)

注 意:
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一个类中显式定义了构造器, 则系统不再提供默认空参构造器
一个类中定义的多个构造器,彼此之间构成重载
父类的构造器不可被子类继承

属性赋值的先后顺序

  1. 默认初始化值
  2. 显示初始化 int i = 0
  3. 构造器赋值
  4. 通过“对象.方法 ”或者“对象.属性”

以上操作的先后顺序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值