Java基础7---面向对象(构造方法和static关键字)

Posted 冬有雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础7---面向对象(构造方法和static关键字)相关的知识,希望对你有一定的参考价值。

一、构造方法给成员变量赋值

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基础7---面向对象(构造方法和static关键字)的主要内容,如果未能解决你的问题,请参考以下文章

Java基础——面向对象

Java 基础 面向对象之构造方法和关键字

JAVA面向对象基础

Java基础5—{面向对象(构造方法对象的创建步骤static关键字Math类)}

Java 基础知识点 笔记总结

一脚踩进java之基础篇16——面向对象 (构造方法)