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

Java深入学习系列---继承类定义模板设计final关键字--day01

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

Java深入学习系列---继承类定义模板设计final关键字--day01

Java中如何定义一个类 1.1.1 类定义的格式
修饰符 class 类名{
//类中的五大成分。
    1.成员变量(属性)
    2.成员方法 (行为) 
    3.构造器 (初始化类的对象数据的)
    4.内部类
    5.代码块
}
1.1.2 演示类的定义
public class Student {
    //成员变量
    String name;
    int age;
    //成员方法
    public void eat() {
        System.out.println("吃饭");
    }
    public void sleep() {
        System.out.println("睡觉");
    }
    //无参构造(初始化类的对象数据的)
    public Student() {
    }
    //满参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //内部类
    public class Inner{

    }
    // 5.代码块
    {
        System.out.println("我是代码块");
    }
}
封装---面向对象的三大基本特征 1.2.1 封装的概念

封装可以被认为是一个保护屏障,对外隐藏具体的实现细节,防止该类的代码和数据被其他类随意访问。

ps: 对外可以被访问的数据,通过提供指定的数据访问接口,供其他类调用。

因此封装有两个方面的含义:

  • 就是把该隐藏的隐藏——实现对对象内部信息的隐藏和保护。
  • 把该暴露的暴露——实现与其它对象和外部程序的交互。
1.2.2 封装的步骤

属性的封装只是封装的一种表现形式,方法、类等都时封装的表现形式。

属性的封装:

  1. 使用private关键字来修饰成员变量。

  2. 使用public修饰getter和setter方法。

1.2.3 演示封装
public class Student {
    //私有化修饰成员变量
    private String name;
    private int age;
    //提供公共的访问方式(获取,修改)
    public String getName(){
        return name;
    }
    public void setName(String n){
        name=n;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int a){
        age=a;
    }
}

构造方法 1.3.1 构造方法的作用
  • 通过调用构造器可以返回一个类的对象

  • 构造器可以帮我们把对象的数据(属性和行为等信息)初始化好。

1.3.2 构造方法的格式
修饰符 类名(形参列表) {
    // 构造体代码,执行代码
}
1.3.3 演示构造方法定义
public class Student {
    //私有化修饰成员变量
    private String name;
    private int age;
    //无参构造
    public Student(){

    }
    //有参构造
    public Student(String n){
        name=n;
    }
    public Student(int a){
        age=a;
    }
    //满参构造
    public  Student(String n,int a){
        name=n;
        age=a;
    }
}
如何通过类创建对象 1.4.1 对象创建格式

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

1.4.2 演示创建对象
public class Test {
    public static void main(String[] args) {
        //无参构造
        Student s1 = new Student();
        s1.show();
        //有参构造
        Student s2 = new Student("张三");
        s2.show();
        Student s3 = new Student(18);
        s3.show();
        //满参构造
        Student s4 = new Student("张三",18);
        s4.show();
    }
}
//学生类代码
public class Student {
    //私有化修饰成员变量
    private String name;
    private int age;
    //无参构造
    public Student(){

    }
    //有参构造
    public Student(String n){
        name=n;
    }
    public Student(int a){
        age=a;
    }
    //满参构造
    public  Student(String n,int a){
        name=n;
        age=a;
    }
    //提供公共的访问方式(获取,修改)
    public String getName(){
        return name;
    }
    public void setName(String n){
        name=n;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int a){
        age=a;
    }

    //展示成员内容
    public void show(){
        System.out.println(name+"----"+age);
    }
}

this关键字的作用 1.5.1 this关键字的作用

this代表所在类的当前对象的引用(地址值),即代表当前对象。用来区分同名的成员变量和局部变量--说人话就是谁在调用这个方法,这个this就是谁/或者说全局变量是谁就是谁

1.5.2 this关键字的常见应用
  • 用于普通的gettter与setter方法

    this出现在实例方法中,谁(哪个对象)调用这个方法,this就代表谁(哪个对象)。

    根据就近原则默认指向成员变量的调用,默认隐含this,this可以不写。

  • 用于构造方法

    this出现在构造器中,代表构造器正在初始化的那个对象

1.5.3 演示this关键字
//学生类代码
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    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;
    }
}
继承 2.1.1 继承的引入

理解1:生活中的继承关系

 

理解2:编程中的继承关系

分析下面两个类存在的继承关系

  1. 学生类(Student) 属性:姓名,年龄 行为:吃饭,睡觉

  2. 老师类(Teacher) 属性:姓名,年龄,薪水 行为:吃饭,睡觉,教书

 

结论:向上抽取,向下实现

  • 假如多个类中存在相同属性和行为时,我们可以将这些内容抽取到一个单独定义的类中。

  • 多个类无需再定义这些共有属性和行为,只要继承那一个类即可。

  • 继承后,多个类中特有的属性和方法可以在自己的类中实现。

  • 建立继承关系后,多个类可以称为子类,单独定义的类称为父类、超类(superclass)或者基类。

2.1.2 继承的含义

继承:就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性、相同的行为。

子类可以直接访问父类中的非私有的属性和行为。

继承描述的是事物之间的所属关系,这种关系是:is-a 的关系。

父类更通用,子类更具体。通过继承,可以使多种事物之间形成一种关系体系。例如,兔子属于食草动物,食草动物属于动物。

2.1.3 继承的好处
  1. 提高代码的复用性

  2. 使类与类之间产生了关系。

  3. 多态的前提。

知识点--继承的定义 2.2.1继承的定义

通过 extends 关键字,可以声明一个子类继承一个父类

class 父类 {
	...
}
class 子类 extends 父类 {
	...
}
2.2.2演示继承定义
//父类代码
public class Person {
    String name;
    int age;

    public void eat() {
        System.out.println("吃饭");
    }

    public void sleep() {
        System.out.println("睡觉");
    }
}
//子类代码
public class Student extends Person {

}
//Teacher子类
public class Teacher extends Person {
    int salary;

    public void teach() {
        System.out.println("讲javaEE");
    }
}
//测试类
    public static void main(String[] args) {
        //创建Student对象,并使用
        Student s = new Student();
        System.out.println(s.name+"---"+s.age);
        s.name="张三";
        s.age=18;
        System.out.println(s.name+"---"+s.age);
        s.eat();
        s.sleep();
        System.out.println("---------");
        //创建Teacher对象,并使用
        Teacher t =new Teacher();
        System.out.println(t.name+"---"+t.age);
        t.name="jlf";
        t.age=30;
        System.out.println(t.name+"---"+t.age);
        t.eat();
        t.sleep();
        t.teach();
    }
}

 

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

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

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