修饰符和关联、依赖

1.高级类特性

可以通过以下修饰符实现类的一些高级特性

static:修饰属性、方法、块、内部类

final:修饰类、常量属性、方法、局部常量

 

2.static属性

2.1 static的定义

1.static被称为静态,可以用来修饰类的属性或者方法。

 

2.如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰,被static修饰的属性被称为静态属性。

 

3.static属性可以使用对象调用,也可以直接用类名调用。

 

4.静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。

 

 

class Baby{

String name;

int age ;

static String sex;

}

 

public class Test4 {

 

 

public static void main(String[] args) {

// TODO Auto-generated method stub

        Baby by=new Baby(23, "女生");

        System.out.println(by.sex+Baby.sex);

}

 

}

class Baby{

String name;

int age ;

static String sex;

 

public Baby(int age,String sex) {

// TODO Auto-generated constructor stub

this.name=name;

this.sex=sex;

}

3.static方法

3.1static方法定义

如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰,被static修饰的方法称为静态方法。

 

public static void Baby(){} ;

 

3.2static方法的作用

static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用.

 

 

public class Test4 {

 

 

public static void main(String[] args) {

// TODO Auto-generated method stub

        Baby by=new Baby(23, "女生");

        System.out.println(by.sex+Baby.sex);

        Baby.Speak();

}

 

}

class Baby{

String name;

int age ;

static String sex;

 

public Baby(int age,String sex) {

// TODO Auto-generated constructor stub

this.name=name;

this.sex=sex;

}

static void Speak() {

System.out.println("i love you");

}

}

3.3何时使用static方法

1.如果某个方法与实例无关,也就是说不管哪个对象调用这个方法,都执行相同的操作,与对象没有关系,则应该定义为静态方法。不需要创建对象后再使用该方法。

例如:API中的Math类,都是静态方法,因为进行数学运算时,与Math对象本身无关,使用类直接调用即可。

 

3.4 static总结

static方法定义

static方法的作用

static方法的重要性

本类的方法之间的调用

任何方法都可以直接调用静态方法

静态方法不能直接调用非静态方法,需要创建对象,用对象名调用非静态方法

4.static

4.1什么是static

static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

 

区别在于语法不同

 

class Baby{

String name;

int age ;

static String sex;

 

public Baby(int age,String sex) {

// TODO Auto-generated constructor stub

this.name=name;

this.sex=sex;

}

static void Speak() {

System.out.println("i love you");

}

static {

    System.out.println("123");

    System.out.println("123");

    System.out.println("123");

 

    

    }

4.2static用途

静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行。

 

如果一个类加载的时候,总要预先做一些事情,则可以放在静态块中,例如,读取一个属性文件,进行一些常规配置,写一些日志等。

 

一个类中可以有多个静态块,按照顺序执行。

5.final属性及参数

5.1final定义

final 用于声明属性,方法和类

 

属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。

 

5.2final修饰属性

final修饰属性时,基本数据类型的属性将成为常量,不能被修改

一些数学定理中的常量经常使用final修饰

π= 3.14159265358979

E= 2.718281828459045

5.3final修饰参数

对参数做final修饰

在方法参数前面加final关键字,为了防止数据在方法体中被修改。

6.类与类之间的关系

关联关系

依赖关系

继承关系

实现关系(本质也是继承关系)

 

6.1关联关系

1.对象和对象之间的连接。在Java中,关联关系的代码表现形式为一个类做为另一个类的属性类型存在。

“有”的关系:”has-a”。

 

2.关联关系分为单向关联和双向关联  

单向关联: A类关联B类。  

双向关联:A类关联B,B类关联A;

 

3.关联关系的多重性:

一对一关联:一个学生,只能在一个班级里学习。

  :

    public class Classes{

       private Student cla;//班级

     }

    public  class Student{

     }

一对多关联:一个学生,可以参加多个班级学习。

解决一对多的关联的方案

  集合

   数组

 

4.关联关系的特殊情况

如果两个互相关联的类中有整体和部分的关系,关联关系分为: 聚合和组合,主要区别在于生命周期不同。

posted @ 2017-09-14 19:42  l王的男人  阅读(192)  评论(0)    收藏  举报