static关键字
特点:1.、随着类的加载而加载。
2、静态优先于对象存在
3、被类的所有对象共享
使用环境
某个成员变量被所有对象共享,它就应该定义为静态
可以通过类名调用(推荐)
可以通过对象调用
静态修饰的内容一般称为:与静态相关的类成员
注意事项
在静态方法在没有this关键字
静态方法随着可类的加载而加载,,this随着对象的加载而加载
静态优先于对象,所有静态中没有this关键字。
静态方法只能访问静态的变量和静态方法(静态只能访问静态)
非静态方法,可以访问非静态方法、成员变量,和静态方法、变量
静态变量和成员变量的区别
静态变量也叫类变量,成员变量也叫方法变量
A.所属不同
静态变量属于类,成员变量属于对象。
B.内存中的位置不同
静态变量:存储在方法区中(静态区)
成员变量:存储在堆内存中
C.内存出现的时机不对
静态随着类的加载而加载,类的消失而消失。
成员变量随着对象的创建而存在,对象的消失而消失。
D.调用不同
静态可以通过类名和对象调用
成员变量只能通过对象调用
静态方法內不可以定义静态变量(二者阶级相同)
面向对象==》封装==》继承==》多态
继承的格式(extends)
子类 extends 父类
publicclass son extends Facther(){}
继承的好处和弊端
好处:
提高了代码的复用性
提高了代码的维护性
让类与类之间产生了关系,是多态的前提
弊端:
类的耦合性会增加
开发的原则(高内聚,低耦合)
java继承的特点
java中只支持单继承,不支持多继承,支持多层继承。
继承的使用环境
注意:
子类只能继承父类所有非私有成员(变量和方法)
子类不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造
不要为了部分功能而使用继承
继承中成员变量的关系
this和super的区别和关系
super子类局部范围访问父类的成员变量
this.成员变量:可以调用本类也可以调用父类的成员变量
super.成员变量:只能调用父类成员变量
调用构造方法
this()调用本类的构造方法
super()调用父类的构造方法
调用成员方法
this.成员方法:子类父类都能调用
super.成员方法:只能调用父类成员方法。
练习:
package com.demo2.cn;
public class Animal {
String name;
int gongh;
double gongz;
}
package com.demo2.cn;
public class Snippet extends Animal {
double jiangj;
}
package com.demo2.cn;
public class Chengxuyun extends Animal {
}
package com.demo2.cn;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Snippet s=new Snippet();
s.name="张三";
s.gongh=1;
s.gongz=25;
s.jiangj=55;
System.out.println(s.name+","+s.gongh+","+s.gongz+","+s.jiangj);
Chengxuyun c=new Chengxuyun();
c.name="张四";
c.gongh=2;
c.gongz=55;
System.out.println(c.name+","+c.gongh+","+c.gongz);
}
}
结果: