栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础知识(四)面向对象初步

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础知识(四)面向对象初步

1.什么是类?什么是对象? 封装

定义:把客观的事物封装成抽象的类、并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

作用:

  1. 尽可能地隐藏对象的内部实现细节、控制用户对类的修改和访问权限
  2. 提到代码的可维护性。
  3. 可进行数据检查、有利于保证对象信息的完整性。
继承 

定义:继承就是由已经存在的类创建新类的机制、在已经存在的类的基础上扩展功能。

作用:在一组类似的对象中、抽取出共性的特征(属性)和行为(方法)、实现重用、提高代码复用。

多态

定义:多态是指父类的方法被子类重写时、可以各自产生自己的功能行为。

作用:

  1. 灵活、降低耦合度。
  2. 屏蔽子类之间的差异。
类的概述
  • 现实生活是由很多很多对象组成的,基于对象抽出了类

  • 对象:软件中真实存在的单个个体/东西

    类:类型/类别,代表一类个体

  • 类是对象的模板,对象是类的具体的实例

  • 类中可以包含:

    • 对象的属性/特征-----------------------------成员变量

    • 对象的行为/动作/功能---------------------方法

  • 一个类可以创建多个对象

2.如何创建类,如何创建对象?如何访问成员?
//创建类:
public class Student {
    //成员变量
    String name;
    int age;
    String address;
    //方法
    void study(){
        System.out.println(name+"在学习...");
    }
    void sayHi(){
        System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
    }
}

//创建对象:
public class StudentTest {
    public static void main(String[] args) {
        //创建一个学生对象
        Student zs = new Student();
        //访问成员变量
        zs.name = "zhangsan";
        zs.age = 25;
        zs.address = "河北廊坊";
        //调用方法
        zs.study();
        zs.sayHi();

        //1)创建了一个学生对象
        //2)给所有成员变量赋默认值
        Student ww = new Student();
        ww.study();
        ww.sayHi();
    }
}
3.方法的重载

发生在同一类中,方法名相同,参数列表不同

//演示方法的重载
class Aoo{
    void show(){}
    void show(String name){}
    void show(int age){}
    void show(String name,int age){}
    void show(int age,String name){}
    //int show(){ return 1; } //编译错误,重载与返回值类型无关
    //void show(String address){} //编译错误,重载与参数名称无关
}
4.构造方法
  • 作用:给成员变量赋初始值

  • 与类同名,没有返回值类型(连void都没有)

  • 在创建(new)对象时被自动调用

  • 若自己不写构造方法,则编译器默认提供一个无参构造方法,

    若自己写了构造方法,则不再默认提供

  • 构造方法可以重载

this:指代当前对象,哪个对象调用方法它指的就是哪个对象

只能用在方法中,方法中访问成员变量之前默认有个this.

this的用法:

  • this.成员变量名--------------访问成员变量

当成员变量和局部变量同名时,若想访问成员变量则this不能省略,其它一般省略 ,一般来说成员变量是指向类的,而局部变量则是在方法中定义的变量

class Student {
    //成员变量
    String name;
    int age;
    String address;
    //构造方法
    Student(String name,int age,String address){
        this.name = name;       //zs.name="zhangsan"
        this.age = age;         //zs.age=25
        this.address = address; //zs.address="LF"
    }
5.继承
  • 作用:代码复用

  • 通过extends来实现继承

  • 超类/父类:共有的属性和行为

    派生类/子类:特有的属性和行为

  • 派生类可以访问:派生类的+超类的,而超类不能访问派生类的

  • 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----单一继承

  • 具有传递性

5.1 super:指代当前对象的超类对象

super的用法:

  • super.成员变量名------------------------访问超类的成员变量(一般不用,了解)

  • super.方法名()----------------------------调用超类的方法

  • super()--------------------------------------调用超类的构造方法

public class SuperDemo {
    public static void main(String[] args) {
        Boo o = new Boo();
    }
}

class Aoo{
    Aoo(){
        System.out.println("超类构造...");
    }
}
class Boo extends Aoo{
    Boo(){
        //super(); //默认的,写不写都在
        System.out.println("派生类构造...");
    }
}

class Coo{
    Coo(int a){
    }
}
class Doo extends Coo{
    Doo(){
        super(5); //调用超类的有参构造
    }
    
}
5.2向上造型

超类型的引用指向派生类的对象

public class UploadDemo {
    public static void main(String[] args) {
        Aoo o1 = new Aoo();
        o1.a = 1;
        o1.show();
        //o1.b = 2;  //编译错误,超类不能访问派生类的
        //o2.test(); //编译错误

        Boo o2 = new Boo();
        o2.b = 1;
        o2.test();
        o2.a = 2;  //正确,派生类可以访问超类的
        o2.show(); //正确
        //new出来Aoo类型的对象,不能访问派生类
        Aoo o3 = new Boo(); //向上造型
        o3.a = 1;
        o3.show();
        //o3.b = 2;  //编译错误,能点出来什么,看引用的类型
        //o3.test(); //编译错误
    }
}

class Aoo{
    int a;
    void show(){
    }
}
class Boo extends Aoo{
    int b;
    void test(){
    }
}

向上造型采用的是父类对象调用子类方法的的思想,当有多个子类继承自一个父类时,如果需要调用多个子类的方法,只需要使用向上造型new对象,调用子类重写的父类方法.向上造型的主要思想是多态

方法的重写(override/overriding):重新写

  • 发生在父子类中,方法名相同,参数列表相同------派生类中重写了超类的方法

  • 重写方法被调用时,看对象的类型

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号