构造方法和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
- 构造方法和static关键字的使用
- java详解 --- 构造方法和static关键字
- java -private,this,static关键字 和构造方法,final关键字
- static关键字和const关键字的使用
- java中构造方法和this,static关键字
- 面向对象中的构造方法以及关键字static的理解
- JavaScript - 构造方法和this关键字使用
- 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字
- JAVA的static关键字和main方法
- 用构造方法构建对象时使用new关键字和不使用new关键字的差别
- 封装、构造方法、构造代码块、this关键字、static关键字
- static 和const 关键字的使用
- final和static关键字的混合使用
- static关键字的使用和注意事项
- static和const关键字的使用
- 黑马程序员—Java面向对象(类和对象、封装、构造方法、this关键字、static关键字)
- static关键字的使用
- static关键字的使用
- 【幻化万千戏红尘】qianfeng-Android-Day01-安卓历史及环境的搭建基础学习:
- super init重构 id 指针 NSObject指针 intancetype指针
- 【46-50】剑指offer
- Activity基础全面详解
- 110. Balanced Binary Tree
- 构造方法和static关键字的使用
- 根据布尔数组,显示出位置的内容,其中用+表示真,空格表示假
- 数据结构实验之图论八:欧拉回路
- Pro Android学习笔记(六六):安全和权限(3):Provider权限
- 数据结构实验之排序六:希尔排序
- Mock Server实践
- 【51-55】剑指offer
- POJ-1273-Drainage Ditches(网络最大流 标号法)
- Bear and Reverse Radewoosh