static(静态) 关键字 用于修饰成员变量和成员方法 特点:
注意事项:
优缺点:
package one;
/**
* Created by JackFeng on 2020/3/8.
*/
public class StaticDemo {
public static void main(String[] args) {
/*
* Math 主要的数学运算方法
* */
// static double abs ( double a) : 返回绝对值
System.out.println(Math.abs(15));
System.out.println(Math.abs(-10));
System.out.println("----------");
// ceil 天花板 向上取整
System.out.println(Math.ceil(1.2));
System.out.println(Math.ceil(1.6));
System.out.println("----------");
// floor 向下取整
System.out.println(Math.floor(1.2));
System.out.println(Math.floor(1.8));
System.out.println("==========");
// round 四舍五入
System.out.println(Math.round(1.2));
System.out.println(Math.round(1.6));
System.out.println("---------");
// max min
System.out.println(Math.max(3,8));
// pow 次幂 第一个参数的第二个参数次幂
System.out.println("2 的3 次方");
System.out.println(Math.pow(2,3));
// random 随机数 大于0 <1
System.out.println(Math.random());
}
}
写一个数据操作的工具类,取最大值,已经取数组中指定索引的值
MyArray 工具类
package com.a2data;
/**
* Created by JackFeng on 2020/3/13.
*/
public class MyArrays {
// 数组操作 有关的工具类 ,不需要创建对象,所以 可以私有他的构造方法
private MyArrays(){}
// 取最大值
public static int getMax(int[] arr){
// 定义参照物
int max = arr[0];
for (int i = 1; i <arr.length ; i++) {
if (max<arr[i]){
// 替换参照物
max = arr[i];
}
}
return max;
}
// 获取指定数组中指定元素的索引位置
public static int getIndex(int[] arr,int a){
for (int i = 0; i <arr.length ; i++) {
if (arr[i]== a)
return i;
}
return -1;
}
}
MyArrayDemo 工具类使用
package com.a2data;
/**
* Created by JackFeng on 2020/3/13.
*/
public class MyArrayDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 21};
int max = MyArrays.getMax(arr);
System.out.println(max);
int index = MyArrays.getIndex(arr, 3);
int index1 = MyArrays.getIndex(arr, 6);
System.out.println(index);
System.out.println(index1);
}
}
局部代码块: 存在于方法中,控制变量的生命周期(作用域) 构造代码块: 去构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行。 静态代码块: 随着类的加载而加载,只加载一次,加载类时需要加载的驱动
继承:Extends 多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类) 只能继承一个父类。 --- 只有一个亲爹 只能继承父类非私有成员 支持多层继承 --- 还可以有一个亲爷爷
super 与this相似,获取父类的成员和方法。就近原则!
方法重写: 在子父类当中,子类的方法和父类的方法完全一样,子类重写了父类的方法(覆盖)。并且super 调用父类的方法即可。
注意事项:
注解:@
继承中构造方法的执行顺序: 子父类继承关系
super() 在子类构造方法的第一行中调用父类的构造方法 继承优缺点 优点:
缺点:
开发原则:高内聚低耦合
package com.a2data;
/**
* Created by JackFeng on 2020/3/13.
*/
public class ExtendsDemo {
public static void main(String[] args) {
Zi zi = new Zi();
zi.function();
}
static class Die {
int num = 11;
Die(){
System.out.println("我是父类无参构造");
}
public Die(int num){
System.out.println("我是父类有参构造");
}
public void method(){
System.out.println("我是父类的方法");
}
}
static class Zi extends Die{
int num = 2020;
Zi(){
this(1); // 第一行不调用子类,或者其他方法,默认调用父类
System.out.println("我是子类无参构造");
}
Zi(int num){
System.out.println("我是子类有参构造");
}
public void method(){
System.out.println("我是子类的方法");
}
void function(){
// this.method();
this.num = 20;
}
}
}
匿名对象:没有名字的对象 场景: 当方法只是使用一次的时候,可以使用匿名对象 可以当做参数传递,但无法进行操作 注意: 匿名对象可以调用成员对象,并赋值,但是并没有意义,因为只调用一次
package com.a2data;
/**
* Created by JackFeng on 2020/3/13.
*/
public class AnonyDemo {
public static void main(String[] args) {
// Student s = new Student();
// s.study();
new Student(); // 匿名对象,没有变量名引用的对象
}
}
class Student{
String name;
int age;
public void study(){
System.out.println("加油提升自己");
}
}
修饰符:可以用于修饰类,成员方法和成员变量
final所修饰的类,不可被继承,不能有子类 final所修饰的方法,不能被重写。 final所修饰的变量,是不可修改的,是常量 常量:
注意: