天天看点

java面向对象 黑马程序员学习笔记(5)

多个对象公用的一个不变的值,使用static来修饰

static 是一个修饰符只能修饰成员,成员变量,成员函数

静态修饰内容被对象所共享

当成员被静态修饰后,就多了一个条用方式,除了可以被对象调用,还可以被类名调用。方式对象.bianliang

eg:既然这么方便,就都用静态吧?

答:不行的,是因为,这是公共的是对象共享的!除非人都有统一同名,具体情况具体分析。

传值博客,饮水机静态,如果饮水机静态,太占用空间。可以使用一个饮水机,杯子可以共享静态

分析,事物的特有的,特有数据随对象存储在对内存中,

新的内存:方法区/共享区/数据区

static特点:

1.随着类的加载而加载 、//person进内存。静态已经存在,随着类的消失而消失。说明static的生命周期最长。

2.被所有对象所共享

3.优先于对象存在

4.可以直接被类名所调用

eg:String name //成员变量也叫实例变量

       static String name /静态的成员变量,类变量

问:什么是对象特有的,什么是对象共有的?

问:实例变量和类变量的区别?

回答:类1.变量随着类的加载而存在于方法区中,实例变量随着对象的建立,存在于堆内存中(对戏对象里面)

                2.生命周期:

                        类变量生命周期最长,随着类的消失而消失。

                         实例变量生命周期随着对象的消失而消失。

java面向对象 黑马程序员学习笔记(5)

静态的使用注意事项:

  1. 静态方法 static
  2. 静态变量 static

   (1)静态方法只能访问静态成员(方法和变量)2

   (2)非静态方法可以访问静态,也可以访问非静态

    (3),静态方法中不可以定义this。super关键字

                 静态优先于对象存在,所以静态方法中不可以出现this

静态方法有利有弊:

掌握共享方面:

利,对对象的共享数据单独存储,节省空间的存储,没必要都存储一份在对象中