JAVASE —— 06面向对象

文章介绍了Java中的类和对象概念,包括方法的定义与调用、对象的引用和属性。强调了封装的重要性,展示了如何通过getter和setter方法保护数据。还讨论了继承、多态性以及抽象类和接口的使用。此外,提到了内部类的概念。
摘要由CSDN通过智能技术生成

创建对象内存分析


类与对象总结

  1. 类与对象

类是一个模板(抽象),对象是一个实例(具体)。

  1. 方法

定义、调用

  1. 对象的引用

引用类型:八大基本类型

对象是通过引用来操作的:栈——>堆

  1. 属性:字段Field 成员变量

默认初始化:

数字:0 0.0

char:u0000

boolean:false

引用:null

修饰符 属性类型 属性名 = 属性值

  1. 对象的创建和使用

  1. 必须使用new关键字创造对象,构造器 Person person = new Person();

  1. 对象的属性 person.name

  1. 对象的方法 person.sleep();

静态的属性 属性

动态的行为 方法


封装

通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。

属性私有,使用公共的get、set方法获取

public class Application {

    public static void main( String[] args) {
        Student s1 = new Student( );
        s1.setName("秦疆");
        System.out.println(s1.getName());

        s1.setAge(70);//
        System.out.println(s1.getAge());
    }
}

public class Student {
    private string name;
    private int id;
    private char sex;
    private char age;
    //get 获得这个数据
    public String getName(){
        return this.name;
    }
    //set给这个数据设置值  
    public void setName(String name){
        this.name = name;
    } 

    public int getAge(int age){
        if(age>120 || age<0){//不合法
            this.age = 3;
        }else {
            this.age = age;
        }   
    }
}

继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。

  • extends的意思是“扩展”。子类是父类的扩展。

  • JAVA中类只有单继承,没有多继承!

  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。

  • 继承关系的俩个类,一个为子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系。

  • 子类继承了父类,就会拥有父类的全部方法

  • 在Java中,所有的类,都默认直接或者间接继承Object

  • 私有的东西无法被继承

调用属性

System.out.prinln(name);//输出传递的参数 秦疆
System.out.prinln(this.name);//输出类里面的东西 qinjiang
System.out.prinln(super.name);//输出父类的东西 kuangshen 

super注意点

  • super调用父类的构造方法,必须在构造方法的第一个

  • super必须只能出现在子类的方法或者构造方法中

  • super和this不能同时调用构造方法

VS this:

代表的对象不同:

this:本身调用者这个对象

super:代表父类对象的引用

前提:

this:没有继承也可以使用

super:只能在继承条件才可以使用

构造方法:

this():本类的构造

super():父类的构造


方法的重写

  • 重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同

  1. 参数列表必须相同

  1. 修饰符:范围可以扩大但不能缩小;public>Protected>Default>private

  1. 抛出的异常:范围,可以被缩小,但不能扩大; ClassNotFoundException --> Exception(大)

  • 重写,子类的方法和父类必要一致;方法体不同!

  • 为什么需要重写:

  • 父类的功能,子类不一定需要,或者不一定满足!Alt + Insert ; override;


多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。

  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)

多态注意事项:

  1. 多态是方法的多态,属性没有多态

  1. 父类和子类,有联系 类型转换异常:ClassCastException

  1. 存在条件:继承关系,方法需要重写,父类引用指向子类对象。Father f1 = new Son( );

不可重写的方法:

a.static 方法,属于类,吃不属于实例

b.final常量;

c.private方法;

  1. 对象能执行哪些方法,主要看对象左边的类型,子类类型就执行子类方法,父类类型就执行父类方法,两个都有的话执行子类方法。


instanceof和类型转换

instanceof作用:判断两个类之间是否存在父子关系,存在则为true,不存在则为false。

  1. 父类引用指向子类的对象

  1. 把子类转换为父类,向上转型;

  1. 把父类转换为子类,向下转型;强制转换

  1. 方便方法的调用,减少重复的代码!


抽象类

  • abstract抽象类:类 extends:单继承 (接口可以多继承)

  • abstract ,抽象方法,只有方法名字,没有方法的实现

  • 不能new这个抽象类,只能靠子类去实现它

  • 抽象类中可以写普通的方法

  • 抽象方法必须在抽象类中


接口

作用:

1.约束

2.定义一些方法,让不同的人实现

3. 所有的方法都是public abstract

4. 所有的常量都是public static final

5.接口不能被实例化,接口中没有构造方法

6. implements可以实现多个接口

7.必须要重写接口中的方法


内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值