第七天学习

                黑马程序员  第七天笔记 

            <a href="http://www.itheima.com" target="blank">java培训</a>

1.构造方法

作用:给对象中的数据初始化赋值

构造方法的写法格式:

方法名是固定的,必须和类的名字一致

构造方法没有返回值,返回值类型int byte void都不能写,如果写了,方法就不是构造方法了

构造方法的运行时自动,new对象的时候自动运行

Java中的每一个类,都有构造方法。

如果不写,编译的时候,编译器,自动写一个

如果手写,编译的时候,不会在加上

构造方法的重载特性:

  重载:方法名一样,参数列表不同

  既然构造器对成员赋值能更改,请问get set方法还需要吗?肯定需要

  只是new的时候运行,后期再次更改变量值,依旧要依靠get和set

代码演示:

     

     

结果演示:

     

 

2.构造方法内存图

  方法区:放类文件

       类中静态内容单独分割,其他内容不会单独放。

       方法调用的时候,jvm在方法区复制一份,压栈运行

        构造方法是由:堆内存中的对象赋值并调用,将内存地址,传递给构造法中的this

3.This

写法:this(); 小括号中可以写参数

作用:是在构造方法之间调用

This()语句,必须写在构造方法的第一句,必须写在构造方法里面。

代码演示:

       

         

演示结果:

    

4.static 修饰符

 是成员修饰符,可以修饰成员变量,成员方法

 静态修饰成员变量,数据被对共享

被静态修饰的内容,多了一种调用方式,可以被类名调用

静态成员的特点:

    随着类的加载而加载,加载到方法区的静态去区

    优先于对象进内存

被该类所有对象共享

被类名直接调用

5.静态的使用注意事项

      Static不能修饰局部

      错误:

       无法从静态上下文中引用非静态静态方法中,直接调用了非静态的成员

     静态方法中,不能写this和super

静态调用静态,非静态调用非 静态       

6.非静态和静态成员变量的区别

  静态变量,称为类变量

  非静态变量,称为实例变量,对象变量

  所属不同:

       静态属于类

      非静态属于对象

内存不同:

     静态跟随类加载到方法区的静态区

     非静态跟着对象加载到堆内存

生命周期不同:

    静态跟随类加载而加载,随着类的消失而消失,生命最长

    非静态跟着对象加载而加载,随着对象的消失而消失,生命周期相对较短

生调用方式不同:

    静态可以被类名调用,也可以被对象调用(不推荐), 静态就是类名调用

   非静态就是对象调用

使用上不同:

   静态可修饰的成员是共享数据

   非静态修饰的成员是对象特有数据,独享的

代码演示:

       

演示结果:

    

7.main方法

Public static void main(String[] args){}

      public : 权限修饰最大权限,被JVM调用,权限必须足够大
      static : 属于自己的类, java 类名 类名调用main方法
      void   : 没有返回值,如果有的话,返回值,返回到JVM
      main   : 不是关键字,JAVA规定的好一个方法名字
     String[] args : 方法的参数,参数一个存储字符串的数组
     args 数组的变量名字,可以修改的

     当main方法被JVM调用的时候,传递参数没有
     JVM传递是什么, new String[0];

     args作用:可以传递数组,让数组中有数据,
     在运行的时候 java 类名 数据1 数据2 
    两个数据,会存储到args的数组中

8.静态什么时候用

  成员变量:什么时候可以被static修饰

  根据具体的情况具体来分析,当你分析一个事物的,如果很多的事物之间存在共性的时候,这个共性就可以修饰为成员变量

 成员方法:什么时候可以被static修饰

9.制作工具类,和文档

   写一个类,写数组遍历,翻转,最大值,查找 数组存储的都是int型数组

   写四个方法,实现四个功能

   对数组的工具类编写一个说明文档  /**   */

   Jdk安装目录in应用程序 Javadoc 生成说明文档

  命令使用 Javadoc –d

   -d 生成后的文档放在哪里去

  命令使用 javac –d实际目录-author –version 文件名.java

  类是被外来程序访问,保证类的权限足够大,类的定义加上public

  注意:

     一旦类使用了public

 

10.Math类的使用

   Math是一个数学计算工具类(方法全部都是静态类)

  JAVA程序对于功能,进行了划分

     核心类  存放于一个软件包中 java.Lang

     工具类  存放于一个软件包中 java.Util  日期,日历

     读写IO 存放于一个软件包中 java.IO

     图形界面  存放于一个软件包中 java.awt    javax.

11.math类成员变量

 Static double E PI

直接类名.成员变量

12.math类的方法

  获取绝对值  static int abs(int a)返回这个参数a的绝对值

         返回大于或者等于该参数的最小整数 static double ceil(double a)

         返回小于或者等于该参数的最大整数 static double floor(double a)

         幂运算 static int pow(int a,int b) 计算a的b次幂

         四舍五入 static long round(double a)返回参数的四舍五入

         伪随机数 static double random() 返回0.0-1.0之间随机数 不可能到达1.0

13.代码块

  三种形式代码块

     局部代码块 : 在方法中{} 限制变量的生命

          构造代码块 : 写在类的成员位置{}

          静态代码块 :  写在类的成员位置 static{}

          静态代码块,最优先执行,就一次

          构造代码块,每new一次对象,就执行一次

原文地址:https://www.cnblogs.com/liman/p/4361335.html