Java基础二

个人新手,一点点心得


关于构造方法


定义:

1.可以有权限修饰符
2.没有返回类型
3.必须和类名保持一致
4.可以有形参列表

调用:
在创建对象的时候调用

作用:
1.创建对象
2.传值

特点:
1.构造方法也可以重载
2.每一个类里面都有一个默认的公共的构造方法
3.如果显示的写了构造方法 默认隐式的就不存在了


关于封装:


隐私、安全
Private: 私有化 可以修饰 成员变量 方法
只能在本类访问

对于私有化的字段如何访问 —赋值 取值:给私有化的字段设置公共的方法(set、get)

特殊情况:
当数据类型为boolean的时候,get方法改为isXxx();

快捷方式:alt+Shift+s

也叫JavaBean

This:
This所在的方法,正在被谁调用this就指代哪个对象


This作用:


1.区分成员变量与局部变量的二义性
2.用于本类构造方法之间的调用
要求:调用其他构造方法的时候 必须写在第一行


static:


关键字,修饰符

1.static可以修饰哪些成员:
成员变量、方法、内部类
2.static修饰的成员有什么用,如何使用
成员变量:成员变量里面的值,会被所有对 象所共享
访问的方式:类名.字段名

方法:调用的方式不一样:类名.方法名
没有static修饰的方法:对象.方法名

子类由static修饰的与父类同名的方法,不叫方法覆写

由static修饰的方法,编译看左边,运行也看左边
匿名对象与生命周期
匿名对象:没有变量接收的对象
特点:只能使用一次
作用:调用方法


生命周期:


开始:当对象被创建的时候

结束:1.当对象失去引用的时候(更多)
2.当对象被垃圾回收器销毁的时候


关于继承


泛化:把属性、方法抽取到父类的过程

特化:子类特有的属性及方法

继承:子类拥有父类的属性及方法(私有无法继承)
从访问角度讲:可以继承非私有化的字段和方法
继承的特性:1.一个类只能直接继承一个父类
2.支持多层级继承
3.每一个类都只能有一个直接父类,如果没有显示的写继承自其他类,默认继承自 Object


方法覆写:


1.方法签名一致
2.子类方法的访问权限不能低于父类的访问权限
3.子类方法的返回值类型和父类的返回值类型一致或是父类返回值类型的子类

验证方法覆写:在方法上面加上@override
执行顺序:优先执行子类自己的方法,若没有执行父类方法

访问权限的大小 public>默认不写>private


重载和覆写的区别:

1.重载要求方法名一致,形参列表不一致,而覆写要全部求一致
2.方法覆写子类覆写父类方法,重载在一个类里面
3.重载和返回类型与权限无关


打印语句: 打印一个对象的时候 默认调用Object里面的toString()方法

==对于基本数据类型 就是比较的字面的值 如果比较引用数据类型 就是比较地址值

对于引用数据类型,应该比较equals
关于Final:
关键字 修饰符
类 成员变量 方法 构造方法 内部类(不研究)


可修饰:


1.成员变量、局部变量:基本数据类型的时候,不能修改里面的值
2.方法:不能够覆写(静态方法,private,final不能被覆写)
3.外部类:不能被继承


关于Super:代表父类对象,但是不持有父类的对象地址


Super : 1.当子类的属性和方法与父类重名的时候,指定使用父类的方法
2.调用父类构造方法
3.子类默认调用无参构造方法
4.Super调用父类的构造方法必须写在第一行


关于单例模式:


单例的设计思路:
1.外部不能随意创建对象-------私有化此构造方法
2.如何获取类的对象------对外提供静态方法,返回该类的对象
3.多次访问同一个方法,返回不同的对象
4.提供一个成员变量,用来存储该类类型的对象


关于多态:


坊间说法:使用父类类型接收子类对象
官方说法:编译时类型和运行时不一致的情况叫多态

编译看左边,运行看右边
特点: 1.一样遵循方法调用时的优先原则
3.静态方法的调用 优先调用父类的方法

优点: 1. 消除类型之间的耦合关系
3.可替换性
4.可扩充性
5.灵活性
6.简化性


Abstract:抽象的(修饰符)


修饰的类是抽象类,修饰的方法是抽象方法

抽象类可以有哪些东西:
1.抽象方法
2.普通方法
3.静态方法
4.成员变量
5.构造方法(不能用)

子类必须覆写父类的方法


关于接口:


API接口:跨平台,跨系统的数据交互
短信 支付 验证码 人脸识别

接口:有Interface修饰的类

作用:作为定义的一种模板

接口里可以有的内容:

1.成员变量:默认是有public static final修饰的
2.抽象方法:默认是有public abstract 修饰的
3.JDK1.8以后可以有静态方法
接口的实现:1.一个类在类名后面加上implements
2.实现类必须实现所有接口的全部抽象方法
3. 接口与接口之间支持多继承
4.实现类如果需要继承一个类和多个接口 需要先继承后实现

接口也支持多态的写法:使用接口接收实现类的对象
接口与抽象类的区别
1、接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
2、接口中只能包含抽象方法;而抽象类中可以包含普通方法。
3、接口中不能定义静态方法;而抽象类可以定义静态方法。
4、接口中只能定义静态常量,不能定义普通属性;而抽象类既 可以定义普通属性,也可以定义静态常量属性。
5、接口不包含构造器;而抽象类中可以包含构造器。抽象类中的构造器并不是用于创建对象,而是让子类调用这些构造器来完成属于抽象类的初始化工作。
6、接口中不包含初始化块;而抽象类可以包含初始化块。
7、一个类最多有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口来弥补java单继承的不足。
8、接口里所有方法都是抽象的,所有属性都是public static final;抽象类是接口的部分实现,既能定义抽象方法,也能定义普通方法和属性比接口更加灵活。
9.、接口只可以继承一个或多个其它接口;抽象类可以继承一个类和实现多个接口。
10、接口方法默认修饰符是public,可以使用其它修饰符。而抽象方法可以有public、protected和default这些修饰符。
11、接口完全是抽象的,它根本不存在方法的实现;而抽象类可以有默认的方法实现;
12、接口强调特定功能的实现;而抽象类强调所属关系。


关于数据结构:


队列(FIFO):先进先出

栈(FILO):先进后出

ArrayList:基于数组的容器类:
1.底层是使用数组来存储数据的
2.可以存储任意类型,任意长度的容器


如何学习一个容器:(增删改查):


1.如何增加数据 add
2.如何删除数据 remove
3.如何修改数据 set
4.如何查询数据 :
(1)普通for循环
(2)强化for(Object o:s)
(3)迭代器


ArrayList与LinkedList的CRUD

			添加		删除		修改		查找

ArrayList: 慢 慢 快 快
LinkedList:快 快 慢 慢
Vector(线程安全)



关于Set:


Set:无序且不可重复的集合
HashSet:判断重复的标准:
hashCode();
equals();
先对比对象的hashCode,如果一致,再调用equals方法判断对象里面存储的数据是否一致

List与Set差别:
1.list可以存储重复数据,有序的(Set不可以存储,无序的)

TreeSet:对于添加的数据必须有排序的规则
Comparable:对象的排序规则:
compareTo:TreeSet添加数据的时候判断重复,以及排序依据(-1,0,1)1:放在前面


关于Map:


Key不能重复,value可以重复

泛型:约束集合里存储的数据类型
//K E V T都是占位
//定义泛型
interface MyList{

}


关于排序


如果一个类 同时使用了自然排序和定制排序,谁的优先级更高::定制排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值