没有合适的资源?快使用搜索试试~ 我知道了~
这是我在B站学习韩顺平java时自己整理和截图的笔记,目前只有线程文件操作前面的内容,有需要的小伙伴可以自取 适合人群:已有如C++,JS等高级语言基础的小伙伴 能学到啥:快速理解java和其他语言不同的地方,如各种集合类和线程
资源详情
资源评论
资源推荐
基本类型转String类型
String类型转基本类型
String str = “123”;int n = Integer.parseInt(str);
可变参数(可传入数组,一个形参列表中只能有一个可变参数)
1.当创建子类对象时,默认调用父类无参构造器,若父类没有提供无参构造器,则必须在子类的构造器
用super去指定使用父类的哪个构造器完成对父类的初始化工作。(super要放在构造器第一行)
2.super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父
类。与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。
3.指定调用父类某个构造器要显示地调用一下super
4.super()和 this()都只能放在构造器第一行,所以不能共存
5.引用构造函数
int n = 10; String str = n + "";
public int sum(int... nums){
1
//nums可当做数组来使用
2
int res = 0;
3
for(int i = 0; i < nums.length; i++){
4
res += nums[i];
5
}
6
return res;
7
}
8
继承
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。、
6.java是单继承机制,子类最多只能继承一个父类
7.父类属性和子类同名,输出子类属性时,从子类往上找
8.子类的方法的参数,方法名称要和父类的一样;
子类方法的返回类型要和父类的一样,或者是父类返回类型的子类;
子类方法不能缩小父类方法的访问权限
成员方法:编译看左边,运行看右边
成员变量:编译看左边,运行看左边
多态的向上转型:父类引用名 = new 子类
不能使用子类特有的属性,方法一样的看子类
多态的向下转型:子类类型 引用名 = (子类类型)父类引用
当向下转型后,可以调用子类类型中所有的成员
动态绑定机制:
1.当调用对象方法时,该方法会和该对象的内存地址/运行类型绑定,即使用父类方法调用子类同名方法时,使用子类
的方法
2.当调用对象属性时,没有动态绑定机制,哪里声明哪里使用
== 是一个比较运算符
1.既可以判断基本类型,也可以判断引用类型
多态
== 和 equals 的对比
2.如果判断基本类型,判断的是值是否相等
3.如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象
equals方法
4.equals是Object类中的方法,只能判断引用类型
5.默认判断的是地址是否相等,子类往往重写该方法,用于判断内容是否相等,比如Integer,String
重写对象 equals 方法
public boolean equals(Object obj)
obj 要进行向下转型
toString 方法:返回全类名 + @ + hashCode (包名+类名+@+十六进制hashCode)
一般重写,输出对象的属性,使用快捷键alt+insert -> toString
直接输出对象时,默认输出toString方法
main 方法语法
四种访问修饰符
代码块
1.普通的代码块在创建对象时调用,仅是使用类的静态成员时,不会执行,如果是 static 修饰符,则只调用一
次,其随着类的加载而执行
(类在什么时候加载:创建对象实例时(new);创建子类对象实例,父类也会被加载;使用类的静态成员
时(静态属性,静态方法))
2.创建一个对象时,在一个类的调用顺序是:(重点、难点)
3.构造器 的最前面其实隐含了 super()的调用 普通代码块
4.创建一个子类对象时(继承关系)的调用顺序:
(自始至终只存在一个实例对象,如 java 源码中的 java.lang.Runtime 类)
饿汉式(在加载类时就已经创建,有时并没有使用,可能造成资源浪费)
1.将构造器私有化(防止直接new对象)
2.在类的内部直接创建对象(该对象是static)
3.提供一个公共的statc方法,返回 gf 对象
调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化的调用优先级一样,他们按定
义的顺序调用)
调用普通代码块和普通属性的初始化(按定义的顺序调用)
调用构造方法
class A{
1
pubilc A(){
2
super();
3
//调用普通代码块
4
System.out.println("ok");
5
}
6
}
7
父类的静态代码块和静态属性(按定义顺序执行)
i.
子类的静态代码块和静态属性(同上)
ii.
父类的普通代码块和普通属性初始化(同上)
iii.
父类的构造方法
iv.
子类的普通代码块和普通属性初始化(同上)
v.
子类的构造对象
vi.
单例设计模式
class GirlFriend{
1
private String name;
2
3
//为了能够在静态方法中,返回一个 gf 对象,需要将其修饰为 static
4
private static GirlFriend gf = new GirlFriend("wmt");
5
6
懒汉式(在当用户使用 getInstance 时才创建,当时存在线程安全问题,即多个线程同时创建对
象)
1.仍然将构造器私有化
2.定义一个 static 静态属性对象
3.提供一个 public 的 static 方法,可以返回一个 Cat 对象
会使用到 final 的情况:
使用细节
public GirlFriend(String name) {
7
this.name = name;
8
}
9
10
public static GirlFriend getInstance(){
11
return gf;
12
}
13
}
14
class Cat{
1
private String name;
2
private static Cat cat;
3
4
public Cat(String name) {
5
this.name = name;
6
}
7
8
public static Cat getInstance(){
9
if (cat != null){
10
cat = new Cat("wmt");
11
}
12
return cat;
13
}
14
}
15
final 关键字
当不希望类被继承时
当不希望父类的某个方法被子类覆盖/重写(override)时
当不希望类的某个属性被修改时
当不希望某个局部变量的值被修改时
剩余42页未读,继续阅读
河啊
- 粉丝: 5
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0