本帖最后由 小石姐姐 于 2017-12-22 16:44 编辑
就业班1-6天笔记整理
day01;
java中的数据类型;
基本数据类型;
4类8种;
整数:byte,short,int,long;
浮点数:float,double.
字符: char;
布尔:boolean;
引用数据类型:
Student s = new Student();
基本数据类型的转换:
自动类型转换:
byte short char ---int--long---float---double
有小到大;
byte b = 10;
int a = b;
强制类型转换;
一般由大到小;
int a = 300;
byte b = (byte)a;//有可能损失精度
算数运算符
++ --;
int a = 10;
a++;
++a;
比较运算符 结果是boolean 类型;
数组:
定义:用于存储多个元素 的一种容器;
特点:
元素类型必须一致
元素有整数索引
一旦定义好长度则无法改变
可以存储基本数据类型
也可以存储引用数据类型
定义格式:
动态初始化:
元素类型【】 数组名 = new 元素类型【10】;
静态初始化:
元素类型【】 数组名 = {元素1,元素2,元素3};
元素类型【】 数组名 = new 元素类型{元素1,元素2,元素3};
标准类的定义和使用
set.get方法;
建测试类;
2.2static静态关键字
概述:是静态修饰符,一般用来修饰类中的成员变量和成员方法。
特点:
静态成员被所有对象共享。
可以直接使用类名来调用
静态所修饰的成员加载优先于对象
随着类的加载而加载
静态的内存图解;
静态的注意事项: A:静态成员只能直接访问静态成员
B:非静态成员既可以访问非静态成员也可以访问静态成员
静态方法:
可以调用静态的成员变量
可以调用静态的成员方法
不可以调用非静态的成员变量
不可以调用非静态的成员方法
只能在静态的方法中调用静态的成员
非静态方法:
可以调用静态的成员变量。
综上所述:
静态方法中只能调用静态成员:
原因: 因为静态方法随着类的加载而加载,
而非静态方法随着对象的创建而加载, 当静态方法加载时, 并不一定创
建了对象, 所以不一定有对象可以调用非静态方法, 为了避免这种不安全
的访问, 所以静态方法中只能调用静态资源
非静态方法中可以调用静态和非静态成员
原因: 非静态方法随着对象的创建而创建, 对象创建的前提是类已经加载,
类在加载时已经加载了静态资源, 所以当对象调用非静态方法时, 静态资源
一定存在, 这种访问是安全的
静态方法中**不能**用this
因为this引用当前类的对象, 而静态方法在类加载时已经加载, 此时没有对
象可以引用
A:静态优点:
对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份
可以直接被类名调用,不用在堆内存创建对象
静态成员可以通过类名直接访问,相对创建对象访问成员方便
B:静态弊端:
访问出现局限性。(静态虽好,但只能访问静态)
Math类使用
2.6.2自定义工具类;private myArray(){
功能:
1.定义一个方法,该方法可以返回数组中最大元素
2.定义一个方法,该方法根据指定的值去数组中查找是否存在该值
存在,返回该值在数组中的索引
不存在,返回-1。
Math 无法创建对象;
:Math类中所有的成员都被静态修饰,因此我们可以直接通过类名访问
静态变量
定义位置:定义在类中方法外
所在内存区域:方法区
生命周期:随着类的加载而加载
非静态变量
定义位置:定义在类中方法外
所在内存区域:堆
生命周期:随着对象的创建而加载
代码块;
-局部代码块;存在于方法中,控制变量的生命周期(作用域)
定义位置:方法中。
构造代码块;提取构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行。
定义位置;类中,方法外。
静态代码块;随着类的加载而加载,只加载一次,加载类时需要做的一些初始化比如加载驱动。
类中,方法外 static修饰。
同步代码块;(多线程讲解)
---------------------------------------------------------------------------------------------
day2
-----------------------------------------------------------------------------------------
第一章 继承
1.1继承:
定义: 多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),在让多个类
去继承这个父类,我们的多个类就可以获取到父类中的成员了。
* extends
特点;只支持单一继承,只能继承一个父类(一个儿子只能有一个亲爹)
支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷)
继承中成员变量的特点
子类只能获取父类非私有成员
子父类中成员变量的名字不一样直接获取父类的成员变量
子父类中成员变量名字是一样的获取的是子类的成员变量
就近原则:谁离我近我就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就使用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
啥都没有,出错了!!!
super:可以获取父类的成员变量和成员方法,用法和this是相似的
继承中成员方法的特点
子类中没有这个方法,调用父类的
子类中重写了这个方法,调用子类的
方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法
当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法,
方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数
参数的类型,参数的顺序),和返回值无
方法重写的应用场景:当父类的方法不能完全满足子类使用的时候,既可以保留父类的功能
(沿袭、传承),还可以有自己特有的功能
继承中构造方法的执行顺序
在子父类中,创建子类对象,调用子类的构造方法,
在子类的构造方法的第一行代码如果没有调用父类的构造或者没有调用
子类的其他构造,则默认调用父类无参构造
this和super的区别
this:当前对象的引用
调用子类的成员变量
调用子类的成员方法
在子类的构造方法第一行调用子类其他构造方法
super:子类对象的父类引用
调用父类的成员变量
调用父类的成员方法
在子类的构造方法第一行调用父类的构造方法
1.9继承优缺点
A:优点
提高了代码的复用性
提高了代码的可维护性
B:缺点:
类的耦合性增强了
开发的原则:高内聚低耦合
内聚:就是自己完成某件事情的能力
耦合:类与类的关系
匿名对象的应用场景:
当方法只调用一次的时候可以使用匿名对象
可以当作参数进行传递,但是无法在传参之前做其他的事情
2.2final关键字
final: 修饰符,可以用于修饰类、成员方法和成员变量
final所修饰的类:不能被继承,不能有子类
final所修饰的方法:不能被重写
final所修饰的变量:是不可以修改的,是常量
第三章 抽象类
抽象类:有抽象方法的类必须是抽象类
抽象类的特点:
抽象方法只能在抽象类里面
抽象类和抽象方法必须被abstract修饰
抽象类不能创建对象(不能实例化)
抽象类中可以有非抽象的方法
抽象类和类的关系也是继承
一个类继承了抽象类要么重写所有的抽象方法,要么他自己是抽象类
A:抽象类的成员特点:
成员变量
可以有成员变量
可以有常量
成员方法
可以有抽象方法
可以有非抽象方法
构造方法
可以有构造方法的,需要对抽象类的成员变量进行初始化
:抽象类关键字abstract可以和哪些关键字共存?
private final static
-
|
|