Java面向对象(封装,继承,多态,接口)

本文详细介绍了Java面向对象的三大特性:封装、继承和多态,以及接口的相关概念。从创建类和对象开始,讲解了访问控制修饰符、构造方法、this与super关键字,接着探讨了抽象类和抽象方法以及接口的定义和使用。通过实例解析了继承的类型和特性,重写与重载的差异,多态的优缺点,并深入讨论了抽象类和接口的区别。
摘要由CSDN通过智能技术生成

文章目录

类和对象

首先3个问题:

1. 创建一个类

创建一个学生类,成员变量是姓名和年龄,然后定义构造方法,以及setXxx方法和getXxx方法,分别来赋值和获取。

public class Student {
 
    // 定义成员变量
    private String name;
    private int age;
    
    // 空参构造函数
    public Student()
    {
 
    }
    // 有参构造函数
    public Student(String name,int age)
    {
 
        this.name = name;
        this.age = age;
    }
    
    /*
    // 针对每一个私有化变量,都要提供get和set方法
    // set方法:给成员变量赋值
    // get方法:对外提供成员变量的值
    */
    
    // 给成员变量name进行赋值
     public void setName(String name)
    {
 
        this.name = name;
    }
    // 对外提供name属性的值
    public String getName()
    {
 
        return this.name;
    }
    
     // 给成员变量age进行赋值
    public void setAge(int age) {
 
        this.age = age;
    }
    // 对外提供age属性的值
    public int getAge() {
 
        return age;
    }
}

举的例子其实就是个 标准的javabean类 (javabean类:用来描述一类事物的类,不需要写main方法,IDEA中快捷键是 Alt+Insert )

2. 创建一个对象

public class StudentTest{
 
   public static void main(String[] args){
 
      // 创建一个Student类对象
      Student std1 = new Student();
      //创建一个带参数的Student类对象
      Student std2 = new Student("zangsan",23);
   }
}

3. 访问变量和方法

public class StudentTest{
 
   public static void main(String[] args){
 
      // 创建一个Student类对象
     Student std = new Student();
     std.setName("lisi");
     std.setAge(24);
     
     String name = std.getName();
     int age = std.getAge();
     System.out.println(”姓名:“+name+” “+”年龄:“+age)
   }
}

some tips:

(1)构造方法

以三个问题回顾一下构造方法:

Q A
构造方法的作用? 创造对象的时候,由 虚拟机自动调用 ,给成员变量进行初始化的
构造方法有几种? 无参构造方法:初始化的对象时,成员变量的数据均采用默认值。
有参构造方法:在初始化对象的时候,同时可以为对象进行赋值。
构造方法的注意事项? (1)任何类定义出来,默认就自带了无参数构造器
(2)定义了有参构造器,无参数构造器就没有了
(3)建议在任何时候都手动写上 空参和带全部参数 的构造方法

(2)this关键字

可以 区分成员变量和局部变量 ,与python中的self相似;

代表方法调用者的地址。

this的内存原理如下:

(3)private关键字

  • private关键字是一个权限修饰符,可以修饰成员(成员变量和成员方法);
  • 被private修饰的成员 只能在本类中才能访问 ;
  • 针对private修饰的成员变量,如果需要被其他类使用,提供相应操作,如:提供setXxx(参数)方法**,用于给成员变量赋值,方法用public修饰;提供 getXxx()方法 ,用于获取成员变量的值,方法用public修饰。

面向对象三大特性:封装,继承&#x

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值