假期JAVA基础复习(2)(黑马java学习笔记)

假期JAVA基础复习(2)(黑马java学习笔记),第1张

假期JAVA基础复习(2)(黑马java学习笔记)
    字符串的拼接问题
    直接用“+”进行拼接的话,每次拼接,都会创建一个新的String对象,然后进行拼接,如下:

    这样即耗时,又浪费内存空间。
    因此,可以使用StringBuilder类来拼接。StringBuilder
    String:是一个不可变的字符串,若要拼接需要再分配新内存,见上。
    StringBuilder:是一个可变的字符串类,可以大概看作一个字符串的容器。
    二者可通过String s = sb.toString()和StringBuilder sb = new StringBuilder(s)来相互转换。
方法名说明public StringBuilder append(任意类型)添加对象,并返回己身public StringBuilder reverse()返回相反的字符串序列。
    ArrayList
方法名说明public boolean remove(Objece o)删除指定的元素,返回删除是否成功public E remove(int index)删除指定索引处的元素,返回被删除的元素public E set set(int index,E element)修改指定索引处的元素,返回被修改的元素public E get(int index)返回指定索引处的元素public int size()返回集合中的元素的个数

    super关键字:
    可理解为,super用法与this相类似,不同点在于:this访问本类中的信息,super访问父类中的信息。
    在子类继承父类时,会默认调用super(),即调用了父类的无参构造方法
    若父类中没有无参构造方法时,可使用super(参数…),调用父类的带参构造方法。

    子类重写父类的方法时,子类的访问权限不低于父类即可。

    父类的方法中private修饰的方法不能被子类重写。

    访问权限:public>默认(不写时的,即缺省)>private

    静态方法中不可访问非静态的方法。
    原因:静态的方法可以通过类名直接访问,无需创建实例化对象。而非静态的方法使用之前,需要创建实例化对象。故通过静态的方法访问非静态的方法时,非静态方法可能不存在实例化对象,导致访问成空,从而报错。

    多态:定义方法的时候,使用父类型作为参数,在将来使用的时候,使用具体的子类型参与 *** 作(父类 实例对象名字a = new 子类(),此时调用a的成员变量和未重写过的方法时,值为父类,调用重写过的方法时,方法为子类。无法使用子类中独有的方法。)(提高了程序的扩展性)。

    抽象类与接口的区别:

成员区别关系区别设计理念区别抽象类变量、常量、构造方法、抽象和非抽象方法类与类:继承、单继承。类与接口:单实现或多实现对类抽象,包括属性、行为(方法)接口常量、抽象方法接口与接口:继承、单继承、多继承对行为抽象,主要是行为(方法)
    接口名作为形参或者返回值时,采用多态的思想,新建一个类实现接口,创建一个实例化对象,将此实例化对象赋给接口名对象即可。
    部类:在一个类中定义的又一个类(套娃)。内部类可以直接访问外部类的成员,包括pirvate修饰的。外部类访问内部类的成员时,需要创建实例化对象。
    格式:
public class Outer{
	public class Inner{
		.......
	}
}

在别的类中创建一个内部类的实例化对象的方法,例:
Outer.Inner 名字 = new Outer().new Inner();

常见用法:

public class Outer{
	int num = 10;
	private class Inner{//大概是JAVA注重安全性?
		public void show(){
			System.out.println("num");
		}
	}
	public void method(){
		Inner i = new Inner();
		i.show();
	}
}	

另一个类中调用

public class Test{
	public static void main(String[] args){
		Outer o = new Outer();
		o.method();
		//间接调用了Outer中的Inner中的show方法。
		//此方法在类的内部创建对象,在调用时直接调用方法即可。
		//将内部实现细节隐藏了,保护数据安全。
		}
}

局部内部类类似(区别为:访问权限的修饰符为缺省。)。

    匿名内部类:没有名字的内部类=.=
    使用前提和条件:必须存在继承和实现关系的时候才可以使用。
    好处:简化书写、存在只需要实现一次的接口或父类时,避免浪费,直接使用。
    详细见:
    https://blog.csdn.net/qq_34944851/article/details/51449420?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164275505016780255284418%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164275505016780255284418&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-51449420.pc_search_result_cache&utm_term=%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB&spm=1018.2226.3001.4187

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5709774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存