**
static变量和继承
**
static变量:加上static后变为静态变量,示例:static String name;
static代码块:加载类的同时加载,只执行一次
静态方法:可直接通过类名调用,静态方法中不能使用this、super,不能访问所属类的实例变量及实例方法,可直接访问类的静态变量及静态方法。静态方法必须要被实现!
实例方法:通过实例来访问,可直接访问所属类的静态变量、方法,实例变量、方法。
实例代码:
package com.cssl.oop.o2;
public class Jh {
// 目前投票数,被所有的选民示例共享
static int count;
// 投票总数最大值,被所有的选民示例共享
static final int MAX_COUNT=100;
private String name;
public Jh(){
}
public Jh(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void vote(){
if(count==100){
System.out.println("投票数已满");
return;
}else {
count++;
System.out.println(this.name+"投票成功!当前票数为:" + count);
}
}
public static void jtff(){
System.out.println("哈哈哈");
}
}
测试类:
package com.cssl.oop.o2;
public class TexJh {
public static void main(String[] args) {
Jh v1=new Jh("张三");
v1.vote();
for (int i = 0; i < 99; i++) {
Jh v=new Jh("v" + i);
v.vote();
}
Jh.jtff();
}
}
继承
继承:继承是java中实现代码重用的重要手段之一,Java中只支持单继承,即一个类只能有一个直接父类。
示例:
方法重写或方法的覆盖(overriding):
1.子类根据需求从父类继承的方法进行重新编写
2.重写时,可以用 super. 方法的方式来保留父类的方法
3.构造方法不能被重写
示例:public void print(){ (子类方法名和父类相同)
super.print(); 调用父类方法
System.out.println("我是一只" + this.strain);
}
面向对象:
值传递机制:(1)关于变量的赋值:如果变量是基本数据类型,此时赋值的是变量所保存的数据值,如果变量是引用数据类型,此时赋值的是变量所保存的数据地址值。
(2)如果参数是基本数据类型,此时实参赋值给形参的是实参所真实存储的数据值,如果参数是引用数据类型,此时实参赋值给形参的是实参所存储数据的地址值,如果参数是引用数据类型。