面向对象《一》

简介: 面向对象《一》

面向对象

面向对象:当需要实现一个功能的时候,找到实现功能的程序 强调对象

三大特性:封装、继承和多态。



标题类和对象的关系

  • 类是对一类事物的描述:是抽象的
  • 对象的一类事物的实例:是具体的
  • 类是对象的模板,对象是类的实体
    类:包括对象的属性和方法
    属性:对象具有的特征



对象的创建和使用

创建格式

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

例如:

Person person = new Person(); //Person 是创建的类



对象的使用

使用成员变量:对象名. 类名称;

使用成员方法:对象名.类名称(参数);



类的封装

用到关键字

private 顾名思义 就是私有的意思,只能本类使用

封装就是将一些信息隐藏起来,对外界不可见


用到方法

setXxx(); 设置值或赋值 返回值类型是void

getXxx(); 获取值 返回值类型是和根据定义的变量的数据类型一样

class Student {
    //Student类中包含姓名、成绩两个属性
    private String name;
    private double score;
    //无参的构造方法
    public Student() {
    }
    //有参的构造方法
    public Student(String name, double score) {
        this.name = name;
        this.score = score;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getScore() {
        return score;
    }
    public void setScore(double score) {
        this.score = score;
    }
}


方法的重载

根据相同的参数个数进行传参对应的方法

就算是同一方法名,都能根据参数的传入到对应方法

package ceshi.com;
public class Example01 {
    public static void main(String[] args) {
        int sum1 = add(1,2);//调用第一个两个参数都是int类型的方法
        double sum2 = add(10.0,1.2,13.2); //调用第二个,三个参数都是double类型的方法
        double sum3 = add(12.0,45.1);//调用第三个 ,两个参数都是double类型的方法
        int sum4 = add(1,4,78);//调用第四个,三个都是int类型的方法
        System.out.println(sum1);
        System.out.println(sum2);
        System.out.println(sum3);
        System.out.println(sum4);
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y,double z) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
    public static int add(int x, int y,int z) {
        return x + y;
    }
}


类的继承

继承特点:
  • 1.Java语言是单继承的。一个类的直接父类只能有唯一一个。
  • 2.Java语言可以多级继承。我有一个父亲,我父亲还有一个父亲,也就是爷爷。
  • 3.一个子类的直接父类是唯一的,但是一个父类可以拥有很多个子类。可以有很多个兄弟姐妹,生二胎。


用到关键词

extends 继承父类

定义父类的格式:(一个普通的类定义)
public class父类名称{
    //...
}
定义子类的格式:
public class子类名称  extends  父类名称{  
    // ...
}


继承关系中,父子类构造方法的访问特点:


子类构造方法当中有一个默认隐含的“super()"调用,所以一定是先调用的父类构造,后执行的子类构造。

子类构造可以通过super关键字来调用父类重载构造。

super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造

总结: 子类必须调用父类构造方法,不写则赠送super()﹔写了则用写的指定的super调用,super只能有一,还必须是第一个。



super关键字的用法有三种:

1.在子类的成员方法中,访问父类的成员变量。 2.在子类的成员方法中,访问父类的成员方法。

3.在子类的构造方法中,访问父类的构造方法。



This关键字

super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种:


1.在本类的成员方法中,访问本类的成员变量。

2.在本类的成员方法中,访问本类的另一个成员方法。

3.在本类的构造方法中,访问本类的另一个构造方法。

在第三种用法当中要注意:


A. this ( …)调用也必须是构造方法的第一个语句,唯—一个。


B. super和this两种构造调用,不能同时使用。

类的多态

  • 代码 当中体现多态性:父类引用执行子类对象
  • 格式:
  • 父类名称 对象名 = new 子类名称();
    或者
  • 接口名称 对象名 = new 实现类名称();


多态不能访问子类的独有功能 通过类型的转换可以访问子类的功能
子到夫 :子类对象赋值给父类类型的变量指向



向上转型
class Animal{}//定义Animal类
class Dog extends Animal {} //Dog继承Animal
class Cat extends Animal{}//
Animal anl = new Dog();//实现了向上转型



向下转型 (就是还原动作)
//利用上面代码
Animal anl = new Dog();
Cat cat = new anl();//从动物变回猫




目录
相关文章
|
9月前
|
设计模式 Java C#
浅谈面向对象
浅谈面向对象
|
1月前
|
C++
c++面向对象
c++面向对象
26 0
|
1月前
|
机器人 Java 数据安全/隐私保护
理解-面向对象
理解-面向对象
32 0
|
8月前
|
Java
1.7 面向对象
1.7 面向对象
35 0
|
11月前
|
C#
C#视频之面向对象
C#视频之面向对象
51 0
|
11月前
真正意义上的面向对象
真正意义上的面向对象
|
Java
2. 面向对象
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
129 1
|
Java C++
2. 面向对象(二)
2. 面向对象(二)
96 0
|
存储 Java
面向对象(二)
面向对象(二)
面向对象(二)