什么是网站建设与维护,免费 网站 如何做,百度建网站要多少钱,海门市规划建设局网站#xff08;以下内容全部来自上述课程#xff09;
1.static–静态–共享
static表示静态#xff0c;是java中的一个修饰符#xff0c;可以修饰成员方法#xff0c;成员变量。
1.静态变量
被static修饰的成员变量#xff0c;叫做静态变量。 特点#xff1a;
被该类… 以下内容全部来自上述课程
1.static–静态–共享
static表示静态是java中的一个修饰符可以修饰成员方法成员变量。
1.静态变量
被static修饰的成员变量叫做静态变量。 特点
被该类所有对象共享不属于对象属于类随着类的加载而加载优先于对象存在
调用方式
类名调用推荐对象名调用
2.静态方法
被static修饰的成员方法叫做静态方法。 特点
多用在测试类和工具类中javabean类中很少会用
调用方法
类名调用推荐对象名调用
3.static内存图
静态变量是随着类的加载而加载的优先于对象出现的。
4.工具类
JavaBean类用来描述一类事物的类。 测试类用来检查其他类是否书写正确带有main方法的类是程序的入口。 工具类不是用来描述一类事物的而是帮我们做一些事情的类。
1.规则
类名见名知意私有化构造方法方法定义为静态
2.练习
需求在实际开发中经常会遇到一些数组使用的工具类。 请按照如下要求编写一个数组的工具类ArrayUtil 提供一个工具类方法printArr用于返回整数数组的内容。 返回的字符串格式如[10,20,50,34,100]只考虑整数数组且只考虑一维数组 提供这样一个工具方法getAerage用于返回平均分。只考虑浮点型数组且只考虑一维数组 定义一个测试类TestDemo调用该工具类的工具方法并返回结果。
工具类
package a02staticdemo2;public class ArrayUtil {//私有构造方法//目的:是不让其他类创建本类对象private ArrayUtil(){}//需要定义为静态的方便调用public static String printArr(int[] arr){StringBuilder sb new StringBuilder();sb.append([);for (int i 0; i arr.length; i) {if(i arr.length - 1){sb.append(arr[i]);}else{sb.append(arr[i]).append(, );}}sb.append(]);String s sb.toString();return s;}//返回平均值public static double getAvg(int[] arr){int sum 0;for (int i 0; i arr.length; i) {sum arr[i];}int avg sum / arr.length;return avg;}
}
测试类
package a02staticdemo2;public class TestDemo {public static void main(String[] args) {//测试工具类中的两个方法是否正确int[]arr {1,2,3,4,5};double avg ArrayUtil.getAvg(arr);System.out.println(avg);String s ArrayUtil.printArr(arr);System.out.println(s);}
}
5.注意事项
静态公有方法中只能访问静态。非静态私有方法可以访问所有。静态方法中没有this关键字。非静态中存在隐藏this在形参之前由虚拟机赋值
2.继承
面向对象的三大特征封装、继承、多态。 封装对象代表什么就得封装对应的数据并提供数据对应的行为。
1.定义
java中提供一个关键字extends用这个关键字我们可以让一个类和另一个类建立起继承关系。
public class Student extends Person{}Student称为子类派生类Person称为父类基类或者超类。
2.好处
可以把多个子类中重复的代码抽取到父类中提高了代码的复用性。子类可以在父类的基础上增加其他的功能使子类更强大。
3.什么时候用继承
当类与类之间存在相同共性的内容并满足子类是父类中的一种就可以考虑使用继承来优化代码。
4.继承的特点
java只支持单继承一个爹不支持多继承好几个爹但支持多层继承子孙三代。 每一个类都直接或者间接的继承于Object爷爷。
5.例子 1.Animal
package a01loopextendsdemo1;public class Animal {public void eat(){System.out.println(动物吃东西);}public void drink(){System.out.println(动物喝水);}
}
2.Cat
package a01loopextendsdemo1;public class Cat extends Animal{public void catchMouse(){System.out.println(猫抓老鼠);}
}
3.Dog
package a01loopextendsdemo1;public class Dog extends Animal{public void lookHome(){System.out.println(狗看家);}
}
4.布偶猫
package a01loopextendsdemo1;public class Ragdoll extends Cat{}
5.狸花猫
package a01loopextendsdemo1;public class LIHua extends Cat{
}
6.哈士奇
package a01loopextendsdemo1;public class Husky extends Dog{public void breakHoom(){System.out.println(哈士奇拆家);}
}
7.泰迪
package a01loopextendsdemo1;public class Teddy extends Dog{public void touch(){System.out.println(泰迪狗蹭来蹭去);}
}
8.测试类
package a01loopextendsdemo1;public class Test {public static void main(String[] args) {//创建对象并调用方法//1.创建布偶猫的对象Ragdoll ragdoll new Ragdoll();ragdoll.eat();ragdoll.drink();//2.创建狸花猫的对象LIHua liHua new LIHua();liHua.eat();//3.创建哈士奇的对象Husky husky new Husky();husky.eat();husky.drink();}
}