JAVA基础知识(三)

1.JAVA关键字

ava关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。Java语言共定义了如下所示的关键字。
在这里插入图片描述

1.1关键字:private

访问修饰符 — 私有的
1.修饰属性:该属性不能被外界访问,属性被封装在对象中
2.修饰方法:该方法不能被外界访问,方法被封装在类中

1.2关键字:this

1.调用属性:调用本对象的属性
2.调用方法:调用本对象所属类的方法
3.调用构造方法:调用本对象所属类的构造方法

	ps :this(xxx):
	    1.传入参数不同,会自动匹配到对应的构造方法
		2.只能写在构造方法中,并且是第一行

1.3关键字:static

static – 静态:
1.修饰属性:该属性被所有对象共享,属于类属性
生命周期:
创建:使用该类时,会把此类的.class文件加载到内存中(方法区),同时会扫描此类中的所有静态属性,并把静态属性加载到静态常量区里
销毁:整个项目结束时,就被销毁了
ps:static修饰的属性生命周期较长,慎用!可能会导致内存溢出的情况
应用场景:static + final

2.修饰方法:该方法被所有对象共享,属于类方法
应用场景:工具类

3.静态代码块
调用优先级:静态代码块 > 代码块 > 构造方法
应用场景:初始化
代码块:初始化没有参数的数据
构造方法:初始化带参数的数据
静态代码块:初始化没有参数的数据,只执行一次的情况下
什么时候调用静态代码块?
把.class文件加载到内存中时,就会调用静态代码块
ps:1和2的用法都是用类名直接调用即可

1.4关键字:super

1.调用属性:在子类里调用父类的一般属性
2.调用方法:在子类里调用父类的一般方法
3.调用构造方法:在子类里调用父类的一般构造方法

1.5关键字:final

1.修饰类:类不能被继承
2.修饰方法:方法不能被重写
3.修饰变量 - 常量:常量不能被重新赋值
命名规范:全部字母大写,单词与单词之间用下划线隔开
存储内存:常量池
应用场景:static + final : 常量类
面试题
String类为什么是final类?
原因:
1.字符串的不变性
2.用fianl修饰的类不可以被继承,方法不能被重写,JVM会认为此类里的方法为内联函数,调用的效率更高

2.继承

继承:子类继承父类一般属性和方法
在父类里用private修饰的属性和方法,子类是不能被继承的
应用场景:
当需求要求你去创建几个类时,这是就要注意,这几个类是否有相同的属性和方法,如果有,就创建个父类,把共同的属性和方法放在父类里

继承中的构造方法

问:创建子类对象,会调用父类的构造方法吗?
答: 会
问:创建子类对象是否会创建父类对象?
答:不会
问: 调用父类构造方法的目的?
答:在子类中开辟一个空间,用来存放父类的一般属性
问: 创建子类对象是否会创建父类引用?
答:不会,创建子类对象不会创建父类对象,父类对象都没有,何来的引用
问: 创建子类对象,先调用父类构造方法还是先调用子类构造方法?
答:先调用子类构造方法

3.重写和重载

3.1重写

应用场景:父类方法不满足子类需求时,考虑重写
条件:
1.在子父类关系的子类中
2.返回值、方法名、参数列表必须和父类重写的方法一致
3.访问修饰符不能比父类更严格

3.2重载

应用场景:同一个类中,方法功能一致,细节不一致,考虑重载
条件:
1.同一个类中
2.方法名相同
3.参数列表的类型或个数不同
4.与返回值无关

4.Object类

Object:基类、超类
所有类的祖先类,如果一个类没有明确继承的父类,默认继承Object

Object类:
	equals:比较两个对象内存地址是否相同
	hashCode:获取到对象在内存中的Hash值
	getClass:获取当前类的字节码文件对象
	toString:
	 public String toString() {
		return getClass().getName() + "@" + Integer.toHexString(hashCode());
		    }
	 
String类:
	 equals:比较两个字符串内容是否相同
	 toString:返回字符串内容
	 
PS:注意object类下的equals和string类下的equals方法比较的方式。

5.访问修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值