高级类特性修饰符:
Static属性:静态,可以用来修饰类的属性或者方法;静态属性是类的所有对象共享的,静态属性在内存中只有一个;
Static方法定义:如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰,被static修饰的方法称为静态方法。(static方法可以使用对象进行调用,也可以使用类名进行调用)
Static块:static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。
Final的属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。
Final的方法:定义必须有实现代码,并且子类里不可被覆盖。
Final的类:不能被定义为抽象类或是接口,不可被继承。
final修饰属性:
当final修饰属性时,基本数据类型的属性将成为常量,不能被修改。
static int age; //静态属性
String name;
final int weight = 46;
static{
System.out.println("这是我的个人简介");
}
{
System.out.println("请往下看");
}
Jiecheng(int age,String name){
this.age = age;
this.name = name;
System.out.println("年龄:"+age+" 名字"+name);
}
public static void main(String[] args) {
ShuZu.eat();//此时eat方法不在本类中,在ShuZu的类中,可以直接用类名进行调用
Jiecheng j1 = new Jiecheng(18,"jay");
Jiecheng j2 = new Jiecheng(20,"shero");
}
}
类与类之间的关系:
关联关系:单向关联: A类关联B类。
双向关联:A类关联B类,B类关联A类;
依赖关系:指一个类A使用到了另一个类B
A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。
A类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”关系。
int a;
B b ; //B类是A类的属性 相当于 数据类型 属性名
A(B b){
System.out.println("--------");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
B b = new B();
A a1 = new A(b);
System.out.println("我是A类的输出语句");
}
B类语句:
B(){
System.out.println("我是B类的输出语句");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("我是g类的输出语句");
}