java基础语法学习(复习)day4

# 今日学习总结

1、String拼接的内存图
2、StringBuilder
3、ArrayList
4、继承
5、this与super
6、继承中构造方法的的访问特点
7、继承中成员方法的访问特点
8、方法重写,Override注解
9、Java中继承的注意事项
10、包的概述和使用(了解即可)

1、String拼接的内存图

在这里插入图片描述
如图,s+= “world”使s最终指向003的地址空间,而001和002的空间则被浪费。因此,如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费内存空间。
我们可以通过Java提供的StringBuilder类来解决问题

2.StringBuilder

*A.概念
		StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器
	这里的可变是指StringBuilder对象中的内容是可变的
B*.String和StringBuilder的区别:
	*String:内容是不可变的
	*StringBuilder:内容是可变的	
C*.StringBuilder构造方法
	public StringBuilder();//创建一个空白可变字符串对象,不含任何内容
	public StringBuilder(String str);//根据字符串内容,来创建可变字符串变量
D*.StringBuilder的添加和反转方法
	public StringBuilder append(任意类型);//添加数据,并返回对象本身
	public StringBuilder reverse();//返回相反的字符序列
E*.String和StringBuilder的相互转化
	public String toString();//StringBuilder转化为String
	public StringBuilder(String S);//通过构造方法可以实现把String转化为StringBuilder

3.ArrayList

*A.集合类
	集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。ArrayList就是一个集合类
	ArrayList<E>:*可调整大小的数组实现
			     *<E>:是一种特殊的数据类型,泛型。
					   使用时用引用数据类型替换
*B.ArrayList构造方法和添加方法
	public	ArrayList();//创建一个空的集合对象(空集合自带[ ])
	public boolean add(E e);//将指定的元素追加到此集合的末尾
	public void add(int index,E element)://在指定位置中插入指定的元素,原位置及以后往后移
										  //插入位置不存在会报错(索引越界)
*C.ArrayList常用方法
	public boolean remove(Object o);//删除指定的元素,返回删除是否成功
	public E remove(int index);//删除指定索引处的元素,返回被删除的元素
	public E set(int index,E element);//修改指定所引处的元素,返回被修改的元素
	public E get(int index);//返回指定索引处的元素
	public int size();//返回集合中元素的个数	

4、继承

	*A.继承的作用
		*a.利:
			*提高了代码的复用性(多个类相同的成员可以放到一个类中)
			*提高了代码的维护性(如果方法代码需要修改,修改一处即可)
		*b.弊:
			*类的耦合性增强,当父类变化时自雷也不得不跟着变化,削弱了子类的独立性
	*B.继承中变量的访问特点
		*a.在子类方法中直接访问一个变量,按以下顺序访问
			*①.子类局部范围找
			*②.子类成员范围找
			*③.父类成员范围找
			*④.没有就报错(不考虑父亲的父亲...)
		*b.其他访问方法
			*1.this.age  //访问本类的成员变量age
			*2.super.age //访问父类成员变量age

5、this与super

*this:代表本类对象的引用
*super:代表父类存储空间的标识(可以理解为父类对象的引用)

在这里插入图片描述

6、继承中构造方法的的访问特点

	*A.子类中所有的构造方法默认都会访问父类中无参的构造方法,为什么呢?
		*a.因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类
		   数据的初始化
		*b.每一个子类构造方法的第一条语句默认都是:super()
	*B.如果父类中只有带参构造方法,怎么办?(写了带参构造方法以后,系统将不会再自动给出默认的无参方法)
		*a.通过使用super关键字去显示的调用父类的带参构造方法
		*b.推荐自己给出无参构造方法

7、继承中成员方法的访问特点

	*A.通过子类对象访问一个方法,按以下顺序
			*1.子类成员范围找
			*2.父类成员范围找
			*3.没有就报错(不考虑父亲的父亲...)

8、方法重写,Override注解

	*A.概述
		*子类中出现了和父类中一模一样的方法声明
	*B.方法重写的应用
		*当子类需要父类功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法,这样既沿袭了父
		类的功能,又定义了子类特有的内容
	*C.Override注解
		*帮助检查重写方法的方法声明的正确性(若重写错误会划红线)
	*D.注意事项
		*私有方法不能被重写(父类私有成员子类是不能继承的)
		*.子类方法访问权限不能更低(public > 默认 > private)。默认即不加修饰符
			如:父类中有public void show(),则子类重写时也必须是public修饰
			  父类中若有 void show(),则子类重写时可以是public void show()或void show()

9、Java中继承的注意事项

	*A.Java中类只支持单继承,不支持多继承
	*B.Java中类支持多层继承(即儿子可以有爸爸,也可以有爷爷)

10、包的概述和使用

在这里插入图片描述

11、import(导包)

	*A.概述
			使用不同包下的类时,使用的时候要写类的路径,写起来过于麻烦
			为了简化带包的操作,Java提供了导包的功能
	*B.导包的格式
		*格式:import包名
		*范例:import com.qust.Student
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值