java基础day7

  • 构造函数:

构造函数的作用: 给对应的对象进行初始化。

构造函数的定义的格式:

修饰符 函数名(形式参数){
函数体…
}

构造函数要注意的细节:
1. 构造函数 是没有返回值类型的。
2. 构造函数的函数名必须要与类名一致。
3. 构造函数并不是由我们手动调用的,而是在创建对应的对象时,jvm就会主动调用到对应的构造函数。
4. 如果一个类没有显式的写上一个构造方法时,那么java编译器会为该类添加一个无参的构造函数的。
5. 如果一个类已经显式的写上一个构造方法时,那么java编译器则 不会再为该类添加 一个无参 的构造方法。
6. 构造函数是 可以在一个类中以函数重载 的形式存在多个 的。

  • 构造代码块:

构造代码块的作用:给对象进行统一的初始化。

构造代码块的格式:

{
构造代码块
}

注意: 构造代码块的大括号必须位于成员 位置上。

  • this关键字:

this关键字代表了所属函数的调用者对象。

this关键字作用:
1. 如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据。
2. 在一个构造函数中可以调用另外一个构造函数初始化对象。

this关键字调用其他的构造函数要注意的事项:
1. this关键字调用其他的构造函数时,this关键字必须要位于构造函数中 的第一个语句。
2. this关键字在构造函数中不能出现相互调用 的情况,因为是一个死循环。

this关键字要注意事项:
1. 存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(java 采取的是“就近原则”的机制访问的。)
2. 如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下,那么java编译器会在该变量的 前面添加this关键字。

    1. static修饰成员变量 :如果有数据需要被共享给所有对象使用时,那么就可以使用static修饰。

    静态成员变量的访问方式:

    方式1: 可以使用对象进行访问。
    格式: 对象.变量名。

    方式二: 可以使用类名进行访问。
    格式: 类名.变量名;

    注意:
    1. 非静态的成员变量只能使用对象进行访问,不能使用类名进行访问。
    2. 千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候
    才使用static修饰。

    static修饰成员变量的应用场景: 如果一个数据需要被所有对象共享使用的时候,这时候即可好实用static修饰。
    2.static修饰方法(静态的成员方法):

    访问方式:

    方式一:可以使用对象进行访问。
    对象.静态的函数名();

    方式二:可以使用类名进行访问。
    类名.静态函数名字。

    推荐使用是类名直接访问静态的成员。

  • 静态的成员变量与非静态的成员变量的区别:

    1. 作用上的区别:
      1. 静态的成员变量的作用共享一个 数据给所有的对象使用。
      2. 非 静态的成员变量的作用是描述一类事物的公共属性。
    2. 数量与存储位置上的区别:
      1. 静态成员变量是存储方法 区内存中,而且只会存在一份数据。
      2. 非静态的成员变量是存储在堆内存中,有n个对象就有n份数据。
    3. 生命周期的区别:
      1. 静态的成员变量数据是随着类的加载而存在,随着类文件的消失而消失。
        2.非静态的成员数据是随着对象的创建而存在,随着 对象被垃圾回收器回收而消失。

静态函数要注意的事项:
1. 静态函数是可以调用类名或者对象进行调用的,而非静态函数只能使用对象进行调用。
2. 静态的函数可以直接访问静态的成员,但是不能直接访问非静态的成员。
原因:静态函数是可以使用类名直接调用的,这时候可能还没有存在对象,
而非静态的 成员数据是随着对象 的存在而存在的。

  1. 非静态的函数是可以直接访问静态与非静态的成员。
    原因:非静态函数只能由对象调用,当对象存在的时候,静态数据老早就已经存在了,而非静态
    数据也随着对象的创建而存在了。

  2. 静态函数不能出现this或者super关键字。
    原因:因为静态的函数是可以使用类名调用的,一旦使用类名调用这时候不存在对象,而this
    关键字是代表了一个函数 的调用者对象,这时候产生了冲突。

静态的数据的生命周期:静态的成员变量数据是优先于对象存在的。

发布了27 篇原创文章 · 获赞 0 · 访问量 533

猜你喜欢

转载自blog.csdn.net/byzcy/article/details/101777401
今日推荐