黑马程序员——Java基础---面向对象(构造方法和static关键字)
2016-06-05 00:26
686 查看
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——
没有返回值类型,连void都没有
return;
b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法。
修改属性值
构造方法
给对象中属性进行初始化
Student s = new Student();
1,Student.class加载进内存
2,声明一个Student类型引用s
3,在堆内存创建对象,
4,给对象中属性默认初始化值
5,属性进行显示初始化
6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
7,将对象的地址值赋值给s
优先于对象存在
被类的所有对象共享
可以通过类名调用
如何理解呢?
静态是随着类的加载而加载,this是随着对象的创建而存在。
静态比对象先存在。
静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
非静态方法:
成员变量:可以是静态的,也可以是非静态的
成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
简单记:
静态只能访问静态。
所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对 象名调用
public static void main(String[] args) {}
针对格式的解释
public 被jvm调用,访问权限足够大。
static 被jvm调用,不用创建对象,直接类名访问
void被jvm调用,不需要给jvm返回值
main 一个通用的名称,虽然不是关键字,但是被jvm识别
String[] args 以前用于接收键盘录入的
ArrayTool
1,获取最大值
2,数组的遍历
3,数组的反转
2.通过javadoc命令生成说明书
@author(提取作者内容)
@version(提取版本内容)
javadoc -d 指定的文件目录 -author -version ArrayTool.java
@param 参数名称//形式参数的变量名称@return 函数运行完返回的数据
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——
一、构造方法给成员变量赋值
1.格式
方法名与类名相同(大小也要与类名一致)没有返回值类型,连void都没有
return;
2.注意事项
如果我们没有给出构造方法,系统将自动提供一个无参构造方法。b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法。
3.给成员变量赋值的两种方式的区别
setXxx()方法修改属性值
构造方法
给对象中属性进行初始化
4.创建一个对象的步骤
class Demo1_Student { public static void main(String[] args) { Student s = new Student(); s.show(); } } class Student { private String name = "张三"; private int age = 23; public Student() { name = "李四"; age = 24; } public void show() { System.out.println(name + "..." + age); } }
Student s = new Student();
1,Student.class加载进内存
2,声明一个Student类型引用s
3,在堆内存创建对象,
4,给对象中属性默认初始化值
5,属性进行显示初始化
6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
7,将对象的地址值赋值给s
二、static关键字
1.static关键字的特点
随着类的加载而加载优先于对象存在
被类的所有对象共享
可以通过类名调用
2.static的注意事项
在静态方法中是没有this关键字的如何理解呢?
静态是随着类的加载而加载,this是随着对象的创建而存在。
静态比对象先存在。
静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
非静态方法:
成员变量:可以是静态的,也可以是非静态的
成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
简单记:
静态只能访问静态。
3.静态变量和成员变量的区别
静态变量也叫类变量 成员变量也叫对象变量所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对 象名调用
4.main方法的格式详细解释
格式public static void main(String[] args) {}
针对格式的解释
public 被jvm调用,访问权限足够大。
static 被jvm调用,不用创建对象,直接类名访问
void被jvm调用,不需要给jvm返回值
main 一个通用的名称,虽然不是关键字,但是被jvm识别
String[] args 以前用于接收键盘录入的
4.工具类中使用静态
制作一个工具类ArrayTool
1,获取最大值
2,数组的遍历
3,数组的反转
public class ArrayTool { private ArrayTool(){}//私有构造方法 public static int getMax(int[] arr) { int max = arr[0]; for (int i = 1;i < arr.length ;i++ ) { if (max < arr[i]) { max = arr[i]; } } return max; } public static void print(int[] arr) { for (int i = 0;i < arr.length ;i++ ) { System.out.print(arr[i] + " "); } } public static void revArray(int[] arr) { for (int i = 0;i < arr.length / 2 ;i++ ) { int temp = arr[i]; arr[i] = arr[arr.length-1-i]; arr[arr.length-1-i] = temp; } } }
三、说明书的制作过程
1.对工具类加入文档注释2.通过javadoc命令生成说明书
@author(提取作者内容)
@version(提取版本内容)
javadoc -d 指定的文件目录 -author -version ArrayTool.java
@param 参数名称//形式参数的变量名称@return 函数运行完返回的数据
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——
相关文章推荐
- 一道面试题中涉及到的SQL的高级使用
- 记我的一次电话面试 (转)
- 剑指Offer----面试题21:包含min函数的栈
- 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
- android常见面试题与回答 (二)
- java里的值传递和引用类型传递的经典面试题
- 一个工作一年半的程序员的自述(四)
- 面试题:从给定的N个正数中选取若干个数之和最接近M
- 面试题1:类的赋值运算符函数
- 赢在职场-WEB全栈开发-1-9 文本样式概览
- iOS开发---block面试题总结(一)
- 赢在职场-WEB全栈开发-1-8盒子模型
- 学术诚信与职业道德
- 剑指Offer----面试题20:顺时针打印矩阵
- 对学术诚信与职业道德的感悟
- 面试总结 - 数据库连接池
- 剑指Offer----面试题19:二叉树的镜像
- 剑指Offer----面试题18:树的子结构
- 面试题15:链表中倒数第k个节点
- 面试题总结之Database