类和对象

类和对象

一、学习目标

①理解类和对象之间的关系(难点)

②掌握面向对象设计基本步骤(重点)

③掌握定义类和创建对象

④使用构造方法实例化对象

⑤掌握封装的概念及其使用(重点)

二、基本概念

2.1 类(class)

类是构造对象的模板或蓝图。

2.2 实例(instance)

由类构造对象的过程称为创建类的实例。

2.3 实例域(field)

对象中的数据。

2.3 方法(method)

操纵数据的过程。

2.4 状态(state)

对于每个特定的类实例(对象)都有一组特定的实例域值。这些值得集合就是这个对象当前状态。

2.5 对象

对象的三个特性:

 行为(behavior):可以对对象施加的操作,即方法。

 状态(state):当对对象施加方法时,对象如何响应。

 标识(identity):辨别具有相同行为与状态的不同对象。

四、类之间的关系

4.1 依赖(dependence)

即"uses-a"关系。如果一个类的方法操纵另一个类的对象,我们就说这个类依赖于所操纵的那个类。

类之间的依赖度,就是指的耦合度。

4.2 聚合(aggregation)

即"has-a"关系,聚合关系意味着一个类的对象包含另一个类的对象。

4.3 继承(inheritance)

即"is-a"关系,一般而言,如果一个类拥有从另一个类中继承过来的属性和方法,并且这个类拥有自己独特的属性和方法。

三、自定义类

在用户自定义类时,一般由三个部分组成:

 ①实例域

 ②构造方法

 ③方法

//演员类
public class Actor{
 //实例域,即类的共有特征:姓名、性别、职业、年龄
 public String name;
 public char sex;
 public String job;
 public int age;
 
 //构造方法,一般是public + 类型 + 参数列表 + 大括号
 //无参构造
 public Actor(){
     
 }
 //带参构造,参数个数不定,可以有多个带参构造
 public Actor(String name1 ,char sex1 ,String job1 ,int age1){
     name = name1;
     sex = sex1;
     job = job1;
     age = age1;
 }
    
 //方法:共有行为:吃饭、表演
 public void eat(){}
 public void performs(){}
}

四、构造方法

①没有返回值类型

②名称与类名一致

③可以指定参数及实现重载

④注意隐式构造和参数化构造不能共存

⑤构造器总是伴随着new操作一起调用

⑥可以不写构造方法,JVM会自动帮我们生成一个无参构造。但如果我们定义了一个构造方法,无论构造方法是否有参数,JVM均不会再自动给我们生成一个无参构造。

五、 封装

6.1 概念

在类型的内部对于数据使用访问权限修饰符进行隐藏,给外部定义访问或者设置通道,即相应的getter和setter方法。

6.2 语法结构

①一个私有的数据域;

②一个公有的域访问器方法;

③一个公有的域更改器方法。

public class{
    //属性私有化
    private 类型 属性名;
    //公有的域更改器方法
    public void setXX(类型 参数名){
        this.属性名 = 参数名:
    }
    //公有的域访问器方法
    public 类型 getXX(){
        return 属性名:
    }
}

使用封装的缺陷:

隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。

六、JavaBean

6.1 概念

java官方标准对象的定义规范

6.2 javaBean的标准定义

1.如果有一个叫做xxx的属性,通常会定义getXxx[getter方法]或者setXxx[setter方法]两个方法,因为大多数工具或者框架会去掉get或set字母去掉然后将方法名剩余部分如Xxx中的首字母小写,将其作为我们的属性名。

2.如果属性的类型是boolean,获取方法可以书写为get,但是通常情况下使用is替代get

3.对于其他的普通方法在命名上没有约束,通常情况下要求使用public对方法进行修饰。

4.通常情况下用public修饰构造方法,必须携带一个无参构造方法,因为很多框架会使用反射调用对象的无参构造,如果没有无参构造可能会导致框架创建对象时发生异常。

七、this关键字

7.1 this.xx中this

说明:

this指代当前的对象(我的),在单独书写类的时候this不能指代其他任何内容,只有在创建对象时或者创建对象后,对象调用方法的时刻this指代的是当前你调用方法的这个对象。

7.2 this()在构造方法中调用

说明:

1.this() 可以帮助我们执行其他构造方法中的代码,便于当前构造方法的执行

2.this()调用构造方法必须放在有效代码的第一行

语法结构:

构造(){
    this(参数1,参数2);
}
构造(参数1,参数2){
    ......
}
构造(参数){
    this();
}

示例:

public Student(){
    this("许可", 18);
}
public Student(String name, int age){
    this.name = name;
    this.age = age;
}

九、java中创建对象的初始化过程

1.将所有的属性进行初始化,基本类型的值为0或false,引用类型的值是null

2.检查是否有针对属性给默认值,如果有,对属性执行第二次初始化

3.执行构造方法的代码,进行相关处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值