[JavaSE ]Day1:对象、封装、分包思想、static关键字

对象

1. 对象

客观存在的事物,万物皆对象。

所谓对象,可以理解是自己的女朋友(男朋友)、厨师、洗衣机等等,可以指挥(使用)其完成某种功能的个体。

2. 类和对象的关系

类是对现实生活中一类具有共同属性行为的事物的抽象。

类是对事物,也就是对象的一种描述,可以将类理解为一张设计图(模板),根据设计图,可以创建出具体存在的事物。

3. 类的组成
  • 属性

    该事物的各种特征

      	例如黑马学生事物的属性:姓名、年龄、毕业院校…
    
  • 行为

    该事物存在的功能(能够做的事情)

      例如黑马学生事物行为:学习、Java编程开发。
    
4. 类和对象的关系
  • 类是对象的描述
  • 对象是类的实体
  • 对象是通过类创建的
5. 类的定义

类的组成

属性

在类中通过成员变量来体现(类中方法外的变量)

行为

在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

定义步骤

①定义类 public class 类名{

②编写类的成员变量 //成员变量

​ 变量1的数据类型 变量1名;

​ …

③编写类的成员方法 //成员方法

​ 方法1;

​ …

6.对象的创建和使用

创建对象

类名 对象名 = new 类名();

范例

Student s = new Student();

使用对象

使用成员变量

格式:对象名.变量名

范例:p.name

使用成员方法

格式:对象名.方法名()

范例:p.study();

案例:
public class TestStudent {
    /*
        创建对象的格式:
                类名 对象名 = new 类名();
        调用成员变量的格式:
                对象名.变量名
        调用成员方法的格式:
                对象名.方法名();
     */
    public static void main(String[] args) {
        // 类名 对象名 = new 类名();
        Student stu = new Student();
        // 对象名.变量名
        // 默认初始化值
        System.out.println(stu.name);  // null
        System.out.println(stu.age);   // 0

        stu.name = "张三";
        stu.age = 23;

        System.out.println(stu.name);  // 张三
        System.out.println(stu.age);   // 23

        // 对象名.方法名();
        stu.study();
        // com.itheima.object1.Student@b4c966a
        // 全类名(包名 + 类名)
        System.out.println(stu);
    }
}
7. private关键字

7.1 作用

​ 是一个权限修饰符

​ 可以修饰成员(成员变量和成员方法)

​ 被private修饰的成员只能在本类中才能访问

7.2 private修饰的成员变量操作

private修饰的成员变量,如果需要被其他类使用,提供相应的操作。

  • 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰,并且可以在此方法中增加判断操作。

7.3. private关键字的使用

需求

写一个标准类:

  • 把成员变量用private修饰
  • 提供对应的setXxx()/getXxx()方法
8. this关键词

概念

代表所在类的对象引用。

作用

可以调用本类的成员(变量,方法)

注意

方法被哪个对象调用,this就代表哪个对象

封装

简介

面向对象三大特征之一(封装,继承,多态)。

隐藏实现细节,仅对外暴露公共的访问方式。比如插线板。

封装的体现

1.属性私有化,并对外提供方法(方法内做判断)进行操作。

2.将代码抽取到方法中,这是对代码的一种封装

3.将属性抽取到类当中,这是对数据的一种封装。

封装的好处

  • 提高了代码的安全性
  • 提高了代码的复用性
构造方法的格式和执行时机

概述

构建、创造对象的时候,所调用的方法。

格式

  1. 方法名与类名相同,大小写也要一致
  2. 没有返回值类型,连void都没有
  3. 没有具体的返回值(不能由retrun带回结果数据)
案例:
public class Student {
    /*
        格式:

               1. 方法名需要跟类名相同, 大小写也要一致
               2. 没有返回值类型, 连void都没有
               3. 没有具体的返回值(不能由return带回具体的结果)
     */
    public Student(){
        System.out.println("我是Student类的构造方法");
    }

}
构造方法的作用

作用

本质作用是创建对象,但是也可以用于给对象的数据(属性)进行初始化。

构造方法的注意事项

构造方法创建注意事项

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

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

构造方法的重载

  • 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。

推荐的使用方式

  • 无论是否使用,都手动书写无参数构造方法,和带参数构造方法。
标准类的代码编写和使用

①成员变量

使用pivate修饰

②构造方法

提供无参多参构造方法

③成员方法

提供每一个成员变量对应set get

提供一个显示对象信息的show()

④创建对象并为其成员变量赋值的两种方式

无参构造方法创建对象后使用set赋值

使用带参构造方法直接创建带有属性值的对象

案例:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void show(){
        System.out.println(name + "..." + age);
    }
}
public class TestStudent {
    public static void main(String[] args) {
        // 1. 无参数构造方法创建对象, 通过setXxx方法给成员变量进行赋值
        Student stu1 = new Student();
        stu1.setName("张三");
        stu1.setAge(23);
        stu1.show();

        // 2. 通过带参数构造方法, 直接给属性进行赋值
        Student stu2 = new Student("李四",24);
        stu2.show();
    }
}

分类:

  • Dao类 :管理存储数据(库管)
  • Service类:业务逻辑处理(业务员)
  • Controller类:和用户打交道(客服接待)
  • entry类:入口,启动运行
  • domain类:封装信息

小操作

  • 退出当前正在运行的虚拟机: System.exit(0)
  • **return:**退出当前方法
  • alt+回车:另一个类中调用方法时创建方法快捷键

static关键字

  1. static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量

  2. 特点:被类的所有对象共享

    ​ 是我们判断是否使用静态关键字的条件

    ​ 随着类的加载而加载,优先于对象存在

    ​ 对象需要类被加载后,才能创建

    ​ 可以通过类名调用

    ​ 也可以通过对象名调用

  3. static注意事项

  • 静态方法只能访问静态成员
  • 非静态方法可以访问静态成员,也可以访问非静态成员
  • 静态方法中是没有this关键字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值