构造方法和static关键字的使用

来源:互联网 发布:em算法的基本原理 编辑:程序博客网 时间:2024/05/22 04:24

构造方法概述和格式

* 构造方法概述和作用    * 给对象的数据(属性) 进行初始化 * 构造方法的格式特点    * a格式:修饰符 类名(参数类型 参数名){代码块 }    * 方法名和类名相同    * 没有返回值类型 连void也没有    * 没有具体的返回值 return * 构造方法的重载及注意事项    * 构造方法重载        * 重载:方法名相同  返回值类型无关 只看参数列表     * 构造方法注意事项        * a:如果我们没有给构造方法 系统默认会给一个空参构造方法        * b:如果有构造方法 系统不再给一个空参构造方法 

给成员变量赋值的两种方式的区别

* A:setXXX()方法 修改属性值* B:构造方法  给属性进行初始化* 区别:这两种方式 在开发中用setXXX更多一些 因为比较灵活

学生类的代码及测试

* 案例演示    * 成员变量        * name age      * 构造方法        * 无参 带两个参数     * 成员方法         * getXXX() setXXX()        * show();         * 区别:show()只是显示 getXXX()获取属性值 可以打印 也可以赋值给其他的变量* 给成员变量赋值    * setXXX() 修改属性值    * 构造方法  给属性初始化     * 区别: * 输出成员变量值的方法     * getXXX    * 自定义一个成员方法show

手机类的代码及测试

* 案例演示    * 成员变量        * brand price      * 构造方法        * 无参构造        * 有参构造     * 成员方法         * getXXX()  setXXX()        * show() 

创建一个对象的步骤 Student stu = new Student();

* 1 Student.class加载进方法区* 2 在栈的main方法中声明Student的引用类型* 3 在堆中为new Student() 创造空间* 4 成员变量默认初始化值(是null和0)* 5 成员变量显示初始化值( 成员变量声明的同时赋值)* 6 在栈中 构造方法进栈 为Student的成员变量赋值  然后弹栈* 7 将堆中new出来的对象地址值传给Student的引用类型

长方形案例

* 案例演示    * 需求:        * 定义一个长方形类 定义 求周长和面积的方法        * 然后定义一个测试类进行测试    * 成员变量        * length width     * 构造方法        * 无参构造        * 有参构造     * 成员方法        * getXXX()  setXXX();        * getPerimeter() getArea()         * **自己出错:在getPerimeter()和getArea()中设置参数**

员工类案例练习

* 需求:定义一个员工类Employee * 成员变量    * id  name  salary* 构造方法    * 无参 有参 * 成员方法    * getxxx() setxxx()    * work()显示员工信息; 

static 关键字的特点

* A:static关键字的特点、    * a,随着类的加载面加截    * b,优先于对象存在    * c,被类的所有对象共享     * 咱们班级的学生应该共用同一个班级编号     * 什么时候使用静态?        * 如果某个成员变量是被所有对象共享的 那么它就应该定义为静态     * 举例        * 饮水机(静态修饰 都用同一个饮水机)        * 水杯(非静态 每个人的水杯不一样)     * 可以通过类名调用     * 静态变量(类变量) 静态方法 (类方法)      

static的注意事项

* static的注意事项    * 静态方法中是没有this关键字的        * 静态是随着类的加载而加载  this是随着对象的创建而存在        * 静态比对象先存在  所以在静态方法中调用的this是不存在的     * 静态方法只能访问静态的成员变量和静态的成员方法        * 静态方法            * 成员变量:只能访问静态变量            * 成员方法: 只能访问静态方法            * 原因:静态成员随着类的加载而创建  非静态成员随着对象创建而存在  调用静态成员时非静态成员可能没有创建        * 非静态方法            * 成员变量:可以是静态 也可以是非静态            * 成员方法:可以是静态成员方法 也可以是非静态方法         * 简单记         * 静态只能访问静态   

静态变量和成员变量的区别

* 静态变量也叫类变量  成员变量也叫对象变量* A,所属不同     * 静态变量属于类  也叫类变量    * 成员变量属于对象  也叫对象变量 * B,内存中的位置不同    * 静态变量:方法区的静态区    * 成员变量:堆内存中 * C,内存中出现的时间不同    * 静态变量:随着类的加载而加载    * 成员变量:随着对象的创建而加载* D,调用不同    * 静态变量:通过类名调用 也可以通过对象调用    * 成员变量:通过对象调用 

main方法的格式详细解释

* A:格式    * public static void main(String[] args){} * B:针对格式的解释    * public 被JVM调用 访问权限足够大    * static 被JVM调用  不用创建对象  直接类名访问    * void   被JVM调用 不需要给JVM返回值    * main 一个通用的名称 虽然不是关键字 但是被jvm识别    * String[] args 以前用于接收键盘的录入 * 演示案例

工具类中使用静态

  • A制作一个工具类

    • ArrayTool
    • 获取最大值
    • 数组的遍历
    • 数组的反转

      /*  数组的反转    返回值类型 void    参数列表:int[] nums    分析:交换数组元素值  交换次数:数组长度除2     创建一个临时变量存放交换值   */public static void revArray(int[] nums){    for (int i = 0; i<nums.length/2 ;i++ ) { //循环次数为元素个数的一半        int temp = nums[i];        nums[i] = nums[nums.length-1-i];        nums[nums.length-1-i]= temp;    }}

      工具类里最好都是静态方法 可以省略创建对象调用节约内存空间我们可以私有化构造方法(不能创建对象,只能通过类名调用静态方法)

说明书的制作过程

  • A,对工具类加入文档注释
    /* /
  • B,通过javadoc命令生成说明书
    • @author
    • @version
    • javadoc -d
    • @param

学习Math类的随机数功能

  • 生成1-100的数

     * 分析:        * Math.random()可以生成0-1的随机小数        * Math.random()*100生成0-100的随机小数        * (int)Math.random()*100 生成0-99的整数        * (int(Math.random()*100)+1 生成1-100的整数

Math类的小游戏

  • A:案例演示

    • 需求:猜数字小游戏(数据在1-100之间)

      * 分析:* 1,利用Math.random()获取一个1-100之间的数字* 2,使用Scanner获取一个猜的数字* 3,设置一个for循环* 4,如果大于随机数 输出大了* 5,如果小于随机数 输出小了* 6,刚好等于 就输出中了
0 0
原创粉丝点击