第七章 Java 面向对象(类和对象-封装-继承-多态)

面向对象VS面向过程

在这里插入图片描述
在这里插入图片描述

类和对象的关系

在这里插入图片描述
在这里插入图片描述
简而言之:对象是对类的实例化

创建与初始化对象

1、使用new关键字创建对象

比如有一个Student类:
那么创建一个Student对象为:
Student xiaoming = new Student()

2、构造器

在这里插入图片描述
在这里插入图片描述

类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的,且构造器有以下2个特点:
1)必须和类的名字相同
2)必须没有返回类型,也不能写void
3)如果创建了有参构造器,必须要创建一个无参构造器

/**
* 1、一个类即使什么都不写,它也会存在一个默认的和类名一样的构造器
* 2、构造器就是用来创建对象的
* 3、使用new关键字,本质是在调用构造器
* **/
public class Person {
   String name;
// 无参构造器
//    public Person(){
//        //this.name = "张三";
//    }
// 有参数的构造器
    public Person(String name){
       this.name = name;
   }
}

封装

在这里插入图片描述

封装的作用:

1、提高程序的安全性,保护数据
2、隐藏代码的实现细节
3、统一接口
4、增加了系统可维护

如何封装?

1、隐藏,使用private关键字修饰变量,这样就只能在当前类中被直接访问,其他地方不能直接访问
2、暴露:使用public修饰的get、set方法合理暴露,让其他地方可以通过这2个方法进行访问和修改

public class Student {
    // 属性  private关键字表示属性私有
    private String name;
    private int age;
    private char sex;
    //提供一些可以操作这个属性的方法
    // get 获得这个数据
    public String getName() {
        return name;
    }
    //设置这个数据
    public void setName(String name) {
        this.name = name;
    }
    **// alt + insert 快捷键自动生成get,set函数**
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(char sex ) {
    //数据安全性检查
          if(sex == '男' || sex == '女'){
             this.sex = sex;
         }else{
             System.out.println("输入错误");
         }
           }
}
//对上面student类的调用
public class Demo01 {
    public static void main(String[] args) {
        Student s = new Student();
        //  System.out.println(s.name);  // 直接访问会报错,因为属性被设置为private
        // 通过方法访问
        System.out.println(s.getName());  //打印默认值null
        s.setName("小明");
        System.out.println(s.getName());  //打印小明
        //设置性别
        //注意:Java中,单引号是字符,双引号是字符串
        s.setSex("女");
        System.out.println(s.getSex());  //打印男
//        s.setSex("女");
//        System.out.println(s.getSex());
    }
}

注意:Java中,单引号是字符char,双引号是字符串String
idea编辑器的alt + insert 快捷键自动生成相关属性的get,set方法

实体类

在这里插入图片描述
实体类应用场景实例如下:

// Student类只负责数据存取
public class Student {
    private String name;
    private double chinese;
    private double
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值