Java的面向对象(3)

1.基本数据类型包装类与String的相互转换
为什么要有包装类
在这里插入图片描述
2.static关键字的使用
(1)static:静态的
(2)static可以用来修饰:属性,方法,代码块,内部类
(3)使用static修饰属性:静态变量,类的变量
按是否使用static修饰,又分为:静态属性vs非静态属性(实例变量)
=实际变量=:我们创建了类的多个对象,每个对象都是独立的拥有一套类中的非静态类属性。当修改其中一个对象中非静态属性,不会导致其他对象中同样的属性值修改
=静态变量=:我们创建了类的对象,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其他对象调用静态变量时,是修改过了的
static修饰属性的其他说明:
=静态变量随着类的加载而加载=。可以通过”类.静态变量”的方式进行调用
=静态变量的加载要早于对象的创建==
==由于类只会加载一次,则静态变量在内存中只会存在一份=:=存在方法区的静态域中=
(4)使用static修饰的方法:静态方法
随着类的加载而加载,可以通过”类.静态方法”的方式进行调用
静态方法中,只能调用静态的方法或属性。非静态方法中,即可以调用非静态类的方法或属性,也可以调用静态的方法或属性
(5)static注意点
在静态的方法内,不能使用this关键字,super关键字
=关于静态属性和静态方法的使用,大家都从生命周期的角度去理解=
(6)开发中的使用
开发中,如何确定一个属性是否要声明为static?
属性是可以被多个对象共享的,不会随着对象的不同而不同
开发中,如何确定一个方法是否为static的?
操作静态属性的方法,通常设置static的?
工具类中的方法,习惯上声明为static的,比如,Math,Arrays,Collections
3.main()方法的使用说明
(1)main()方法作为程序入口
(2)main()方法也是一个普通的静态方法
(3)main()方法可以作为我们与控制台交互的方式。(之前,使用Scanner)
4.代码块
(1)代码块的作用:用来初始化类,对象
(2)代码块如果有修饰的话,只能使用static
(3)分类:静态代码块vs非静态代码块
(4)静态代码块
内部可以输出语句
=随着类的加载而执行,而且执行一次=。从而得出当类中的静态代码块执行了,说明该类进行类加载(一切的所有类首次都要进行类加载)
作用:初始化类的信息
如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
静态代码块要优先于代码块
(5)非静态类代码块
内部可以输出语句
=随着对象的创建而执行=
每创建一个对象,就执行一次非静态代码块
作用:可以在创建对象时,对对象的属性进行初始化
执行顺序在构造器的前面
(6)执行顺序:由父及子 静态先行
5.native关键字的理解
(1)使用native关键字说明这个方法是原生函数,也就是这个方法是用c/c++等非java语言实现的,并且被编译成DLL,由java去调用
6.final关键字
(1)=final可以用来修饰的结构:类,方法,变量=
(2)final用来修饰一个类:此类不能被其他类所继承。比如:String类,System类,StringBuffer类
(3)final用来修饰方法:表面此方法不可以被重写。比如Object类中的getClass();
4.final修饰变量,此时的”变量”就称为是一个常量
在这里插入图片描述
Final修饰局部变量
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法内使用此形参了,不能重新赋值了
在这里插入图片描述
Static final用来修饰属性:全局常量
7.abstract关键字的使用
(1)abstract:抽象的
(2)abstract:可以用来修饰的结构:类,方法
(3)abstract:修饰类:抽象类
此类不能实例化
=抽象类中一定由构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)=
开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
(4)abstract修饰方法:抽象方法
=抽象方法只有方法的声明,没有方法体=
包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的
若子类重写了父类中所有的抽象方法后,此子类方可以进行实例化
若子类没有重写父类中的所有抽象方法,则此类也是一个抽象类
(5)abstract使用的注意点
abstract不能用来修饰:属性,构造器等结构
如果可以修饰属性的话,那这个属性还要不要赋值?这不是没有意义的吗
如果可以修饰构造器的话,那么构造都没有方法体,怎么进行对类的初始化。还要去明确构造器重写,你见过构造器重写的?
Abstract不能修饰私有方法,静态方法,final的方法,final的类
假设可以修饰私有方法,你见过私有方法可以被子类重写的吗,如果可以,那么Private权限修饰符就没有意义了
假设可以修饰静态方法,大家知道静态方法是随着类加载的时候就已经加到方法区的了,你们见过没有方法体的静态方法吗?再去假设静态方法没有方法体,那我们一开始就讲它加载到方法区中干什么,为了重写啊?
J假设可以修饰final的方法,final修饰的方法不能被重写,而你abstract修饰的方法是明确子类要重写该方法的,这不是矛盾吗,再加上连方法体都没有了,final都是最终的方法了,连个方法体都没有,最终说明最终,没有意义
匿名子类。
在这里插入图片描述
模板设计模式的体会
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汝甚骚吾不及

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值