首页 > 编程语言 >java_day6_this关键字、构造方法、static关键字、工具类、文档注释

java_day6_this关键字、构造方法、static关键字、工具类、文档注释

时间:2024-09-24 21:12:29浏览次数:1  
标签:arr java String 构造方法 int 成员 关键字 public

一、this关键字

this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】

    this: 代表的是调用当前方法的对象

    this可以使用对象中的成员变量,成员方法,构造方法
    变量查找规则:就近原则
    先在方法中查找变量,若找到就使用
    若方法中没有该变量,去成员变量的位置上查找
一个标准类的写法2.0版本
    成员变量:使用private关键字修饰
    成员方法:针对每一个成员变量都提供getXxx()和setXxx(),其中参数需要见明知意,需要使用this关键字辅助
    show()方法:展示当前对象的所有成员变量值
public class Student2 {
    private String name;
    private int age;
    private String gender;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public void show() {
        System.out.println("姓名:" + this.name + ", 年龄:" + this.age + ", 性别:" + this.gender);
    }
}

class Demo2{
    public static void main(String[] args) {
        Student2 s1 = new Student2();

        s1.setName("wll");
        s1.setAge(18);
        s1.setGender("男");
        s1.show();
    }
}

二、构造方法

构造方法:在一个类中,方法名与类名一致,没有返回值,连void都不能有
    创建对象的时候,是需要借助构造方法来创建对象的。

    我们之前写一个类的时候,是没有写过构造方法的,但是呢,我们也可以创建对象
    我们没有提供,默认的构造方法从哪里来呢?

    结论:
        1、jvm在编译一个类的时候,若该类没有自己编写的构造方法的话,会默认提供一个无参,空方法体的构造方法
        2、若我们自己提供了构造方法【无论是有参还是无参】,jvm都不会再提供了。
        3、构造方法也可以发生重载【在同一个类中,构造方法可以有多个】
    构造方法的用处:
        1、用于创建对象
        2、可以给对象中成员变量进行赋值

一个标准类的3.0版本的写法

    类:成员
        成员变量:私有化
        构造方法:一个无参,一个所有参数
        成员方法:setXxx()和getXxx()
        show方法:展示对象所有成员变量值
public class Student4 {
    private String id;
    private String name;
    private int age;

    Student4(){

    }

    Student4(String id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void show() {
        System.out.println("学号:" + id + ", 姓名:" + name + ", 年龄:" + age);
    }
}

class Demo4 {
    public static void main(String[] args) {
        //通过无参的构造方法创建对象,使用setXxx对成员变量赋值
//        Student4 s1 = new Student4();
//        s1.setName("wll");
//        s1.setId("1001");
//        s1.setAge(18);
//        s1.show();

        //直接通过有参的构造方法对成员变量进行赋值
        Student4 s2 = new Student4("1002","wll",19);
        s2.show();


    }
}

三、static关键字

    java中若某一个成员表示多个对象共享的话,可以使用static进行修饰
    1. 被static修饰的成员,称之为类成员,在对象创建之前就存在于方法区中静态区
    2. 被static修饰的成员,可以通过类名直接访问使用,非静态的成员必须要通过对象去调用
`注意事项:`
1. 被static修饰的成员,称之为类成员,在对象创建之前就存在于方法区中静态区
2. 被static修饰的成员,可以通过类名直接访问使用,非静态的成员必须要通过对象去调用
3. static可以修饰成员变量和成员方法
4. 非静态的成员方法既可以访问静态的成员[变量或方法],也可以访问非静态的成员[变量或方法]
5. 静态的成员方法只能访问静态的成员[变量或方法]
6. 静态的成员方法不能使用this关键字的

四、工具类

    工具类:
        1. 构造方法私有化
        2. 方法是静态的,将来可以通过类名访问

五、文档注释

    帮助文档的学习:
        1、打开帮助文档
        2、点击索引,搜索想要查询的类
        3、看是在什么包下的,除了在java.lang包下的类不用导包以外,其它任意包下的类在使用之前都需要导包
        4、看类的关系图
        5、看类的描述
        6、看有无构造方法
            若看到一个类中没有构造方法,大概率这个类是工具类,方法被static修饰
        7、若有构造方法,就可以根据构造方法创建对象了
        8、看成员变量
        9、查找自己需要的方法并使用
/**
 * 这是针对数组的常用功能集合,例如逆序,遍历等功能
 * 这是一位大神编写的
 * @author wll
 * @version V1.0.0
 */
public class ArrayTool {

    private ArrayTool(){}

    /**
     * 该方法是针对元素是int类型数组的逆序
     * @param arr 参数是元素为int类型的一维数组
     * @return 返回排序后的数组地址
     */
    public static int[] niXu2(int[] arr) {
        for (int front = 0, end = arr.length - 1; front < end; front++, end--) {
            int tmp = arr[end];
            arr[end] = arr[front];
            arr[front] = tmp;
        }
        return arr;
    }

    /**
     * 该方法是以指定格式遍历元素为int类型的一维数组
     * 遍历后的结果为[元素1,元素2,...]
     * @param arr 参数是元素为int类型的一维数组
     */
    public static void printIntArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            if (i == 0) {
                System.out.print("[" + arr[i] + ",");
            } else if (i == arr.length - 1) {
                System.out.println(arr[i] + "]");
            } else {
                System.out.print(arr[i] + ",");
            }
        }
    }

    /**
     * 该方法是获取参数是元素为int类型的一维数组中的最大值
     * @param arr 参数是元素为int类型的一维数组
     * @return 返回数组中的最大值
     */
    public static int getMaxNumber(int[] arr){
        int maxNumber = arr[0];

        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > maxNumber) {
                maxNumber = arr[i];
            }
        }
        return maxNumber;
    }
}

标签:arr,java,String,构造方法,int,成员,关键字,public
From: https://www.cnblogs.com/w-ll/p/18429983

相关文章

  • [JVM] 应用诊断工具之javac命令
    0引言1JDK命令:javac反编译指定类:javac-c{className}参考命令:C:\Users\xxxxxx>javap-cjava.lang.Object>"Object.txt"C:\Users\xxxxxx>javap-cjava.lang.ObjectCompiledfrom"Object.java"publicclassjava.lang.Object{p......
  • java中的继承关系
    继承是指我有多个类,而且这些类都有相同的属性和方法的时候就可以使用继承关系java提供了一个关键字用来表示继承关系:extends写法:classBextendsA{}表示B类继承自A类这里的B称之为:子类,派生类这里的A称之为:父类,基类或者超类子类只能继承父类的成员变量和成员方法,并且不是私......
  • 02.Java流程控制
    1.Scanner对象可以通过Scanner类来获取用户的输入基本语法Scanners=newScanner(System.in);通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()来判断是否还有输入的数据next()一定要读取到有效字符后才......
  • Day5 JavaWeb知识了解以及每日一题:力扣125.验证回文串
    Day5JavaWeb知识了解以及每日一题:力扣125.验证回文串2024年9月24日20:06:45JavaWeb基础知识TomcatApacheTomcat是一个开源的Servlet容器和Web服务器,它是JavaEE(EnterpriseEdition)的一部分,专门用于运行JavaServlet和JavaServerPages(JSP)。Tomcat的主要功能是接收HTTP......
  • java_day5_面向对象、private关键字
    一、面向对象面向对象与面向过程的区别?面向过程的思想:代表语言C语言功能开发中的每一步都是自己参与的面向对象的思想:代表语言java语言指的是不断地创建对象,指挥对象事情过程面向对象的思想:1、都有那些事物?判断事物的方式:......
  • java封装题目3
    3.以面向对象的思想,编写自定义类描述图书信息。设定属性包括:书名,作者,出版社名,价格;方法包括:信息介绍show()要求:1)设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问2)限定价格必须大于10,如果无效进行提示3)限定作者,书名为只读属性4)设计构造方法实现对属性......
  • 基于SSM的选题管理系统(有报告)。Javaee项目。
    演示视频:基于SSM的选题管理系统(有报告)。Javaee项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringMvc+Mybatis+Jsp+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。系统设计思想一个成功的网站应明确......
  • JAVA的字符串这篇讲清楚了
    JAVA_String从概念上讲,JAVA字符串就是Unicode序列。例如"Java\u2122"由5个UNICODE字符J,a,v,a和™组成。Java没有内置和字符串类型,而是试用java标准库中提供的一个预定义类,很自然地叫做了string。子串substringStringsubStr=str.substring(beginIndex);这里beginIndex指......
  • java封装题目2
    2.以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限,工作单位和职务;方法包括:工作要求:1)设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问2)限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。3)限定“技......
  • java_day4_数组、方法
    一、数组一维数组数组:是一块连续固定大小的内存空间,有着索引的概念定义数组的语句格式:数据类型[]数组名;【推荐】数据类型数组名[];如果只是定义一个数组的话,没有给初始化值,相当于一个变量没有值,是不能够直接使用的如何对一个数组进行初始化?1、动态初始化......