Java基础知识3

文章详细介绍了Java编程中的main方法、代码块(局部、构造、静态)的使用和特点,以及类的继承机制,包括构造方法、this和super的用法。此外,讨论了方法的重载和重写、final关键字的作用,以及多态的概念和好处,强调了抽象方法和抽象类在定义接口和强制实现时的重要性。
摘要由CSDN通过智能技术生成

main方法

main方法中进行赋值:(位置)Edit Configurations...-->Program arguments:(进行赋值)

static特点的封装类

 

代码块:

在Java语言中使用{}括起来的内容

根据位置和声明不同:局部代码块,构造代码块,静态代码块,同步代码块(多线程)

局部代码块:局部位置:在方法中;

                      作用:限定变量的生命周期,及早释放,提高内存使用率;

构造代码块:成员位置:类方法外;

                      特点:每次创建对象都要使用一次构造代码,优先于构造方法执行;多个构造方法中的相同代码可以提取出来放到构造代码块中,每次调用构造结构都执行,并且在构造方法之前执行;

静态代码块:成员位置:只要是static 修饰          与类相关

                      特点:随着类的加载,只执行一次,而且优先于构造代码块和构造方法,用于对类进行初始化,在加载的时候就执行,并且执行一次。

                      执行顺序:静态代码块,构造代码块,构造方法。 

类的继承:

 定义:把公共的代码提取出来,然后放到一个独立的类,再让其他类与这个独立的类产生关系在我们java中存在这样的关系叫做继承。

多个类的相同的属性行为,提取到这个独立类中 那么这多个类就不需要再定义这些属性和行为,只要继承就可以了(这个独立的类就是父类   超类  基类  super 这多个类就是子类  也叫派生类)

继承的格式

        class 父类名{}

        前提这个父类要存在

        class 子类名 extends 父类名{

        }

继承的好处:

              1:提高代码复用性

              2:提高代码维护性

              3:让类与类之间产生关系      多态的前提

         弊端: (了解)开发的原则 高内聚 低耦合

                内聚: 完成某个功能的能力 高内聚   一个类能把所有事情干了,就不用麻烦别人

                 耦合:类与类之间的关系  低耦合  类与类之间关系尽量不要太复杂,

Java支持多层继承,不支持多继承

this:本类对象使用

super:父类对象使用

this():无参构造

super():父类无参构造

每个类都使用Object作为超类

所有的构造方法第一句默认是super();
父类没有无参构造,子类怎么办?
1.给父类加一个无参构造。
2.子类构造可以通过super(..)调用父类非构造方法。
3.可以通过一种间接的方式 访问到父类存在构造;通过this()访问本类构造。


继承中成员方法关系:
1.子类中的成员方法名 和 父类中的成员方法名 不一样,先调用子类中的再调用父类
2.子类中的成员方法名 和 父类中的成员方法名 一样  ,调用子类

方法的重载:在同一个类中,方法名相同、参数列表不同(类型不同,个数不同),与返回值类型无关
在继承中,子类出现了和父类一模一样的声明(方法名一样,参数列表一样,返回值类型一样),叫做方法的重写,也叫做覆盖。     子类重写父类的方法。

方法重写的注意事项
1.父类中私有的方法不能被重写(私有方法不能被继承,怎能被重写?)
2.子类重写父类方法时,权限修饰符不能低于父类的权限修饰符(最好一致)
3.父类静态的方法 如果子类要重写一个重名的方法,子类也要静态的。


构造方法不能被继承。(可以在子类构造中用super调用)


final关键字
1.被final修饰的类不能被继承
2.final修饰的方法不能被重写,能被继承。
3.被final修饰的常量不可以不赋值,而且只能赋值一次。
4.final修饰局部变量
    1>.final变量只能赋值一次,不能重新赋值
    2>.基本数据类型(是一个值),被final修饰后值不能变。
    3>.引用数据类型(例如方法名引用或者类名引用等等。),值可以改变,地址值不可以改变。
    
    
多态
    多种形式(同一个事物不同的状态)
例:H20:气态:水蒸气;液态:水;固态:冰。
    对同一个对象,在不同时刻的状态。
例:动物 d=new Lv();

多态前提

          1.有继承
          2.需要有方法的重写
          3.父类的引用指向子类(本质上是子类)
          我们说的多态是对象的多态。
          
多态访问特点
编译期:从源码。java文件--javac-->.class
        编译期不会产生对象,只是对代码的语法进行检查。

方法的:        animal b=new Lv()
编译时看左边(看父类)看父类有没有方法的声明(可以没有方法体(就是抽象方法))
运行时看右边(看子类)看子类有没有重写父类方法,实际就是运用子类的方法
a.load();看父类有没有load 方法的声明。


多态的好处
提高了代码的维护性;提高代码扩展性。封装
多态弊端
子类特有的方法不能被调用。


我们之前写的猫狗案例中,动物中的吃的方法,给了空方法,并不准确;因为具体到每个动物,吃的方法不一样
因此要用抽象方法(不写方法体,只声明)。
特点:
    1.抽象方法格式:public(权限修饰符) abstract void(返回值) 方法名()

public abstract void animal()
    2.如果一个类中有一个抽象的方法,那这个类也必须是抽象类。
      抽象类中既可以有抽象方法,也可以没有抽象方法。


    3.抽象类中可以有构造方法。虽然有构造方法但不能实例化(不能创建对象)!
    为什么:因为抽象类中存在抽象方法,没有方法体,调用构造方法没意义所以不能创建。
    抽象类的构造方法是用于子类的初始化使用。


    4.可以间接创建实例(多态创建对象)


    5.研究抽象类的子类:可以,但是不能创建对象了~,如果不是抽象类就必须重写抽象方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值