java学习日记(8-13)
Posted 征程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习日记(8-13)相关的知识,希望对你有一定的参考价值。
############### day08 eclipse 使用 #####################
Alt+/ 自动补全 syso
shift + enter 到下一行行首
ctrl+shift+f 格式化代码
ctrl+/ 单行注释
ctrl+shift+/ 多行注释
ctrl+shift+o 导包
Alt+上下箭头 移动代码行
ctrl+d 删除
ctrl+1 意见提示
import导入工程
############## day09 类 day10 继承 ##########################
局部变量没有默认值,跟随方法进入栈中
成员变量跟类对象进入堆中
private 修饰成员变量,本类可见
类方法的就近访问原则
this.name 同C++的this指针
p.speak() 在调用的时候,同时把地址传给this
extends java单继承
子类调用成员变量,方法,重名时采用就近原则
也可用this,super表明本类与父类
implements 实现接口,必须重写所有方法
override 重写
子类方法的权限大于等于父类方法的权限
public
protected 可以在不同包下子类中使用
default 本包内使用,不写任何权限, 默认为default
private
public abstract class 抽象类,不能实例化对象
public abstract void work(); 抽象方法必须存在抽象类中
只要有抽象方法,就一定是抽象类
抽象类可以没有抽象方法
子类必须重写父类抽象方法
################### day11 接口 ##################
interface 成员方法全抽象,成员变量为常量
public abstract 返回值类型 方法名(参数列表) # 成员方法必须此格式
public static final int a = 1;
# 可以不写修饰符,选择性写修饰符,但本质是一样的
可以实现多接口,但多个接口不能有相同的(函数名,参数列表)返回值不同
接口可以 extends 别的多个接口
多态 FU f = new ZI() 父类(接口)引用指向子类对象
出现自动类型提升,子类提升为父类类型,向上转型
只能调用父子共有的方法,不能调用子类特有的方法
ZI z = (ZI)f 向下转型
#多态
成员变量,静态成员方法
编译看父类
运行看父类
f.a 调用的是父类的成员变量,若无,报错
非静态成员方法
编译的时候看父类
运行的时候看子类
instanceof 判断一个引用变量是不是某个类对象
p instanceof People
########### day12 构造方法,this, super ##########
构造方法格式 权限 类名(参数列表) 同C++,默认有无参构造方法规则,同C++
this(参数列表) 在一个构造函数中调用另一个构造函数,必须写在构造函数的第一行
参数列表应匹配相应构造函数的参数列表
super(参数列表) 在子类构造函数中调用父类构造函数,参数列表可为空(调用空参)
子类中的构造方法会自动调用父类的无参构造方法(若没有显示调用父类构造方法)
第一行
super. 调用父类的成员函数与成员变量
super(), this() 不能同时出现
子类内存空间分为父类空间和子类空间,同C++
子类的所有构造方法都要直接、间接的调用父类构造函数
########### day13 final static 匿名对象 内部类 包 ########
# final
修饰类, 不可被继承
修饰方法, 不能被重写
修饰变量, 一次赋值,不能被改变, 同C++ const
修饰引用数据类型, 变量保存的内存地址不能改变 同C++ const
修饰成员变量
成员变量的赋值,在创建对象前赋值
1、final int age= 1; 直接赋值(recommend)
2、构造方法赋值
final int age;
public People(int age)
{
this.age = age;
}
# static 同C++
修饰类成员, 成为对象共享数据,不属于某个对象,类共有,同C++
可以用类名调用, 存在于静态区,有默认值
public static final String SCHOOL_NAME = "itcast";
常量大写,单词之间加下划线
匿名对象:做参数,做返回值
内部类可以使用外部类成员
外部类要使用内部类的成员,必须建立内部类对象
调用规则
外部类名.内部类名 变量 = new 外部类().new 内部类();
变量.内部类成员
同名变量的调用
调用外部类成员 outer.this.i;
调用内部类成员 this.i;
调用局部变量 i;
局部内部类
在方法里面建立内部类对象,对象进行调用
# 匿名内部类
定义实现类,重写方法,创建实现类对象一步完成
new 接口/父类(){
重写抽象方法
}.方法;
多态的方式
接口/父类 变量 = new 接口/父类(){
重写抽象方法
};
变量.方法1;
变量.方法2;
class XXX implements Smoking{ new Smoking(){
public void smoking() 等价于 public void smoking()
{ } { }
} }.smoking();
XXX x = new XXX();
x.smoking();
包相当于文件夹 包名网址反写
代码块执行顺序
static 代码块,只执行一次
构造代码块
构造方法
以上是关于java学习日记(8-13)的主要内容,如果未能解决你的问题,请参考以下文章