初始Java1

初识Java

Java是一门面向对象的语言
包含:属性(成员变量)、方法
默认初始化:数字-0、char-u0000、boolean-false、引用-null

重载:一个方法名对应多个方法
重写:必须具有相同的方法名称.参数列表.返回类型
new:创建一个对象(实例化)、引用(父类引用子类对象)

外部类:直接一个类
内部类:在一个类内再定义一个类
通过外部类来实例化内部类 Outer.Inner inner = out.new Inner();
外部类名.内部类名 s = 外部类名.new 内部类名

栈(自动分配连续的空间,后进先出)放置局部变量、变量的引用
堆(不连续):放置new出的对象
方法区:(也是堆)存放类的代码信息、static变量、常量池

静态方法static是类的方法,非静态方法是对象的方法
有static时,调用的是类的方法(通过类名.来访问)
无static时,调用的是对象的方法
有static可直接调用,无static则需先实例化一个对象再通过实例化对象调用
在A类中可通过【B.方法名】直接 调用B类中的static(静态)方法,
非静态方法:需要先实例化new这个类(类是抽象的,类实例化后会返回自己的一个对象)
Student s = new Student
对象类型 对象(名) = 对象值
((类型)对象)可以强制转型
【static和类一起加载 当类存在时它就存在了;而非静态(无static)则需要类实例化之后才存在

this.属性(当前这个类的属性)

  • 构造器(构造方法)
    1.必须和类名相同
    2.必须没有返回类型,也不能写void
    实例化初始值
    1.使用new关键字 本质是在调用构造器
    2.用来初始化值

  • 封装
    public
    protected
    default默认的
    private属性私有,别的类不能直接引用,可设置方法给别的类操作:
    getName:return this name获得这个数据
    setName:this.name = name给这个数据设置值

  • 继承extend
    只能单继承、Ctrl+H(继承树)
    final常量不能被继承
    子类继承了父类,就会拥有父类的全部方法(私有的东西无法被继承)
    所有的类,都默认直接or间接继承object类
    1⃣️super注意点:
    1.super调用父类的构造方法,必须在构造方法第一个
    2.super必须只能出现在子类的方法or构造方法中
    3.super和this不能同时调用构造方法
    【super.属性】父类的
    默认调用父类的无参构造super.xxx
    2⃣️this注意点:
    1.代表的对象不同:
    this:本身调用者(类)的这个对象
    super:代表父类对象的应用
    2.前提:
    this:没有继承也可以使用
    super:只能在继承条件才可以使用
    3.构造方法:
    this();本类的构造
    super();父类的构造
    3⃣️方法的重写:
    需要有继承关系,子类重写父类的方法
    1.方法名必须相同
    2.参数列表必须相同
    3.修饰符:范围可扩大不可缩小:pub>pro>def>private
    4.抛出异常:范围可缩小不可扩大
    父类的引用可以指向子类

  • 多态
    ·同一个方法可以根据发送对象的不同而采用多种不同的行为方式
    ·一个对象的实际类型是确定的,可以指向的引用类型有很多(父类,有关系的类)
    (父类的引用可以指向子类
    Son s1 = new Son();
    Father s2 = new Son();
    ·对象能执行哪些方法,主要看对象左边的类型,和右边关系不大
    子类:能调用自己的方法or继承父类的
    父类:可以指向子类,不能调用子类
    —————
    1.方法的多态,属性没有多态
    2.父类和子类有联系才可转化、类型转换异常
    3.存在条件:继承关系,方法需要重写,父类引用指向子类对象
    —————
    instanceof判断是否是某种类型,有继承关系true,无false
    类型之间的转换:父(高) —— 子(低)
    子类转化为父类,可能丢失一些自己的方法
    低—>高:可随意
    高—>低:需强制转型:((类型)对象)
    1.父类引用指向子类对象
    2.把子类转化为父类,向上转型
    3.把父类转化为子类,向下转型:强势转换
    4.方便方法的调用
    执行顺序:1.静态代码块static(只执行一次) 2.匿名代码块(可赋初始值) 3.构造方法

  • 抽象类abstract
    1.抽象类只有方法名字,没有方法的实现
    2.继承了抽象类的类,必须实现抽象类的方法,除非也是abstract
    3.不能new,只能靠子类去实现它
    4.抽象类中可以写普通方法
    5.抽象方法必须在抽象类中

  • 接口interface、实现implement(s)
    只有规范(定义一组规则),接口的本质是契约,如法律大家都要遵循,自己无法写方法,约束和实现分离,面向接口编程
    接口可以多继承
    类可以实现接口,必须重写接口的类
    1.接口中所有定义都是public abstract
    2.常量public static final

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值