Java基础之类对象和封装

举报
袁袁袁袁满 发表于 2022/04/10 19:40:26 2022/04/10
【摘要】 1 类和对象,封装 1.1 类的定义类的组成:共同属性 和 行为属性:在类中通过 成员变量 体现(类中方法外的变量)行为:在类中通过 成员方法 体现(和前面的方法相比,去掉static关键字即可)快捷键:生成对象:写好new Phone();,按下 Ctrl+alt+v 自动补全前面Phone p = new Phone();定义有参构造方法 :按下Fn+Alt+insert:选Const...

1 类和对象,封装

1.1 类的定义

  • 类的组成:共同属性 和 行为
  • 属性:在类中通过 成员变量 体现(类中方法外的变量)
  • 行为:在类中通过 成员方法 体现(和前面的方法相比,去掉static关键字即可)
  • 快捷键
    • 生成对象:写好new Phone();,按下 Ctrl+alt+v 自动补全前面Phone p = new Phone();
    • 定义有参构造方法 :按下Fn+Alt+insert:选Constructor ,按下Shift全选
    • 定义成员方法 :按下Fn+Alt+insert:选Getter and Setter,按下Shift全选
  • 类的定义步骤
public class 类名{
	// 成员变量
    变量1的数据类型 变量1;
    变量2的数据类型 变量2;
    ...
    //成员方法
    方法1//没有static
    方法2...

1.2 对象的使用

1.2.1 创建对象

  • 格式
// 类名 对象名 = new 类名();
Phone p = new Phone(); 
  • 快捷键 :写好new Phone();,按下 Ctrl+alt+v 自动补全前面Phone p = new Phone();

1.2.2 使用对象

  • 1.使用 成员变量
  • 格式:对象名.变量名;
  • 范例p.brand;
  • 2.使用 成员方法
  • 格式:对象名.方法名;
  • 范例p.call();

1.3 成员变量和局部变量

  • 成员变量:类中方法外的变量
  • 局部变量:方法中的变量
    在这里插入图片描述
  • 区别
    在这里插入图片描述

1.4 封装

1.4.1 private( [ˈpraɪvɪt])关键字

  • 是一个权限修饰符
  • 可以修饰类成员(成员变量和成员方法)
  • 作用是保护成员不被其他类使用,被private修饰的成员只能在本类中访问
  • 针对private修饰的成员变量,如果如果需要被其他类使用,提供相应方法
    • 提供“ set变量名(参数) ”方法,用于设置成员变量的值,方法用 public 修饰
    • 提供“ get变量名() ”方法,用于获取/返回成员变量的值,方法用 public 修饰
public class Student {
    //成员变量
    String name;
    private int age;

    //提供get、set方法
    public void setAge(int a) {
        if(a<0 || a>120) {
            System.out.println("你给的值有误");
        }else {
            age = a;
        }
    }
    public int getAge(){
        return age;
    }

    public void show() {
        System.out.println(name+","+age);
    }
}

1.4.2 private关键字的使用

  • 一个标准类的编写
    1、把 成员变量 用 private 修饰
    2、提供对应的 getXxx() 和 setXxx() 方法
  • 快捷键 (定义成员方法):按下Fn+Alt+insert:选Getter and Setter,按下Shift全选
public class Student {
    //成员变量
    private String name;
    private int age;

    //提供get/set方法
    public void setName(String n) {
        name = n;
    }
    public String getName() {
        return name;
    }
    public void setAge(int a) {
        age = a;
    }
    public int getAge() {
        return age;
    }
    public void show () {
        System.out.println(name+"," + age);
    }
}

1.4.3 this关键字

  • 1、this修饰的变量指代成员变量
    • 方法的形参如果和成员变量同名,不带this修饰的变量值形参,而不是成员变量
    • 方法的形参没有和成员变量同名,不带this修饰的变量值成员变量
  • 2、什么时候使用this呢? 解决局部变量隐藏成员变量的时候 (同名的时候)
  • 3、this:代表所在类的方法引用(方法被哪个对象调用,this就代表哪个对象)
    在这里插入图片描述
    在这里插入图片描述

1.4.4 封装

  • 封装的原则:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量 private ,提供的对应的 getXxx() 和 setXxx() 方法
  • 封装的好处
    1、通过方法来控制成员变量的操作,提高了代码的安全性
    2、把代码用方法进行封装提高了代码的复用性

1.5 构造方法

1.5.1 构造方法定义

  • 作用:创建对象
  • 功能:完成对象数据初始化
  • 快捷键
    • 定义无参构造方法:按下Fn+Alt+insert:选Constructor ,按下C
    • 定义有参构造方法:按下Fn+Alt+insert:选Constructor ,按下Shift全选
  • 格式
public class 类名{
	修饰符 类名(参数) { //修饰符一般使用public
	}
}

1.5.2 注意事项

  • 1、如果没有定义构造方法,系统将给出一个 默认 的 无参数构造方法

  • 2、如果定义了构造方法,系统将不再提供默认的构造方法

  • 解决方法: 无论是否使用,都手动书写无参数构造方法,和带参数构造方法

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。