2021/1/11——1/16Java阶段一学习总结

day01

  • 构造方法
    方法名和类名相同;没有返回值类型;void也没有;
    作用:为类中的成员变量赋值。
    格式:无参构造:public 类名(){};
    有参构造:public 类名(参数列表){xxx}
  • 成员方法的分类
    有无返回值类型;有无参数列表。
  • 成员变量名称和局部变量名称一致的情况,如何访问
    先在局部位置找,存在就使用;
    再在成员位置找,存在就使用;
  • static关键字的特点
    1)随着类的加载而加载,
    2)优先于对象;
    3)能被多个对象共用;
    4)访问格式:类名.成员变量;类名.成员方法
  • 静态成员变量和成员变量的区别?
    1)写法格式不同:
    成员变量:数据类型 变量名;
    静态变量:static 数据类型 变量名;
    2)在内存中的位置不同:
    成员变量:堆内存中;
    静态变量:方法区中,静态区域内;
    3)生命周期不同:
    成员变量:随着对象的创建而存在,随着对象创建完毕,等待垃圾回收器回收;
    静态变量:随着类的加载而加载,类只加载一次,static静态变量也只加载一次;
    4)初始化不同:
    成员变量:通过构造方法或者setxxx(xxx)进行赋值;
    静态变量:通过类名.变量名=0进行赋值;

day02

- 代码块

局部代码块:{
	}
	静态代码块:static{

	}
	构造代码块:{
	}
	构造方法代码块:public 类名(){
	}

优先级:静态代码块>构造代码块>构造方法代码块

- 继承

a.将多个类中共有的特性抽取到一个独立类中,独立类与其他类之间的关系就是继承;
b.继承的好处:
1.提高了代码的复用性 ;
2.提高了代码的维护性;
3.类与类之间产生关系。
c.继承的特点:
1.在Java中只支持单继承;
2.虽然在Java中不支持多继承,但是支持多层继承。

- 继承中的构造方法的访问问题

继承中,如果父类中提供了有参构造没有提供无参构造方法,那么子类会出现什么情况,如何解决?
结果:
子类的所有构造方法都会报错
解决:
1.手动在父类中添加无参构造方法;
2.在子类构造方法中显示访问父类的有参构造方法,在子类构造方法中的第一句加super(xxx);
3.在子类的有参构造中用this()调用子类的无参构造,然后在子类的无参构造中访问父类的有参构造super(xxx);

- 继承中,成员变量的访问

继承中,子父类成员变量名称一致的时候如何访问?
成员变量名称一致的情况:
1)现在子类的局部位置找,如果存在就使用
2)如果局部位置找不到,那么就需要在本类的成员位置中找,如果存在,就使用
3)本类的成员位置找不到,那么就需要在父类的成员位置中找,有就使用!
4)如果父类的成员位置找不到,那么就报错,没有这个变量!

- this和super的区别

1.this.变量名访问该类中的成员变量
super.变量名访问父类中的成员变量;
2.this( )访问该类中的无参构造方法,
super( )访问的是父类中的无参构造方法;
3.this.方法名( )访问该类中的成员方法,
super.方法名( )访问父类的成员方法;
4.this(xxx)访问的是该类中的有参构造方法,
super(xxx)访问的是父类中的有参构造方法;

day03

  • 多态
    一个事物在不同时刻体现的不同形态:在内存中数据类型
    前提条件:
    1)类与类之间必须是继承关系;
    2)存在方法重写;
    3)必须有父类引用指向子类对象;
  • 多态的成员访问特点
    访问成员变量时:编译看左,运行看左;
    访问成员方法时:编译看左,运行看右;
    访问静态方法时:编译看左,运行看左;
    访问构造方法时:先让父类初始化,再让子类初始化;
  • 多态的好处以及多态的弊端
    好处:
    1)可以提高代码的维护性;
    2)可以提高代码的扩展性。
    弊端:
    不能访问子类的特有功能。
  • 方法重写
    方法重写:在子类中出现和父类一模一样的方法声明,并且子类的方法将父类的方法覆盖了,这种情况称为方法重写
  • Overload和Override的区别
    区别:
    方法重载:在定义方法时出现,与返回值无关,方法名相同,参数列表不同:参数类型相同,参数个数不同;参数个数相同,参数类型不同;
    方法重写:在继承中使用,子类要使用自己特有的功能,需要将父类的功能覆盖了,在子类中出现和父类中一模一样的方法声明;

day04

  • 抽象类
    如果一个类中存在抽象方法,那么将这个类定义为抽象类。
    特点:
    a.不能直接实例化,但是可以通过子类间接实例化;
    b.抽象类会强制子类对抽象类中的抽象方法进行重写;
  • 抽象类的成员特点
    1)成员变量:既可以是常量也可以是变量;
    2)成员方法:即可是抽象方法,也可以是非抽象方法;
    3)构造方法:即可有无参构造方法,也可以有有参构造方法。
  • abstract和哪些关键字冲突
    final、private、static
  • final关键字的特点
    1) final修饰类,类不能被继承;
    2)修饰成员方法,该方法不能被重写;
    3)修饰成员变量,此时变量是常量。

day05

  • 接口
    针对某个具体事物提供的一种扩展功能;
    格式:interface 接口名{}
    接口名:大驼峰命名法。
    特点:
    1)接口中的方法必须是抽象方法;
    2)接口和它的子实现类之间的关系:实现(implements)关系;
    3)接口不能直接实例化,只能通过创建子实现类对象间接实例化。
  • 接口的成员特点
    1)成员变量:成员变量只能是常量,默认修饰符:public static final;
    2)成员方法:只能是抽象方法,默认修饰符:public abstract;
    3)构造方法:没有。
  • 接口如何实例化
    接口实例化需要通过创建子实现类对象间接进行访问;
	//接口
	interface Inter {
   	 public static final int age=21;
    	public abstract void method();
	}
	//子实现类
	public class InterImpl implements Inter{
    	@Override
     	 public void method() {
        	System.out.println("接口真牛逼");
   	 }
	}	
	//测试类
	public class Test {
    	public static void main(String[] args) {
       	 Inter i=new InterImpl();
        	i.method();
    	}
	}
  • 抽象类和接口有什么区别?
    1.成员区别:
    a.成员变量:抽象类:成员变量既可以是常量也可以说是变量;
    接口:成员变量只能是常量;
    b.成员方法:抽象类:成员方法可以是抽象方法也可以是非抽象方法;
    接口:成员方法只能是抽象方法;
    c.构造方法:抽象类:既可以是无参构造方法也可以是有参构造方法;
    接口:没有构造方法;
    2.关系的区别:
    a.类与类之间:是继承关系(extends);只能单继承,不能多继承,但可以多层继承;
    b.类与接口之间的关系:是实现关系(implements);可以多实现接口;
    c.接口与接口之间的关系:继承关系(extends);既可以单继承,也可以多继承。
    3.设计理念的区别:
    抽象类:将一个事物抽象化,体现的是一种“is a”关系;
    接口类:给事物提供额外的扩展功能,这个功能是通过后天努力实现的,体现的是一种“like a”关系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值