Java 初学 day06

news/2024/10/10 21:57:08

Java 06

1、this

变量查找规则:就近原则
先在方法中查找变量,若找到就使用
若方法中没有该变量,去成员变量的位置上查找
public class Student {// 成员变量Sprivate String id;private String name;private int age;public void setId(String id){
//        id = id;//我们的本意是将传进来的id赋值给成员变量的id,但是id = id无法查找到成员变量中的id//java提供一个关键字:thisthis.id = id;}
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 Demo{public static void main(String[] args) {Student2 s1 = new Student2();s1.setName("张三");s1.setAge(18);s1.setGender("男");s1.show();}
}

2、构造方法

构造方法:在一个类中,方法名与类名一致,没有返回值。连void都不能有

创建对象的时候,是需要借助构造方法来创建对象的。

1、jvm在编译一个类的时候,若该类没有自己编写的构造方法的话,会默认提供一个无参,空方法体的构造方法
2、若我们自己提供了构造方法【无论是有参还是无参】,jvm都不会再提供了。
3、构造方法也可以发生重载【在同一个类中,构造方法可以有多个】
public class Student3 {Student3(){System.out.println("这是无参的构造方法");}Student3(String s) {System.out.println("这是有参的构造方法:" + s);}
}class Demo3 {public static void main(String[] args) {Student3 s = new Student3("数加科技");Student3 s2 = new Student3();}
}

构造方法的用处:

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("江川");
//        s1.setId("1001");
//        s1.setAge(18);
//        s1.show();//直接通过有参的构造方法对成员变量进行赋值Student4 s2 = new Student4("1002","江川",19);s2.show();}
}

类是用来描述现实生活中的事物的,而成员变量是用来描述一个类的。

3、static

java中若某一个成员表示多个对象共享的话,可以使用static进行修饰
1. 被static修饰的成员,称之为类成员,在对象创建之前就存在于方法区中静态区
2. 被static修饰的成员,可以通过类名直接访问使用,非静态的成员必须要通过对象去调用

注意事项

1. 被static修饰的成员,称之为类成员,在对象创建之前就存在于方法区中静态区
2. 被static修饰的成员,可以通过类名直接访问使用,非静态的成员必须要通过对象去调用
3. static可以修饰成员变量和成员方法
4. 非静态的成员方法既可以访问静态的成员[变量或方法],也可以访问非静态的成员[变量或方法]
5. 静态的成员方法只能访问静态的成员[变量或方法]
6. 静态的成员方法不能使用this关键字的

4、工具类

工具类

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

注释

单行注释
多行注释
文档注释[今天来说],针对工具类添加文档注释
package com.shujia.day06;/*** 这是针对数组的常用功能集合,例如逆序,遍历等功能* 这是32期一位大神编写的* @author 小虎* @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;}
}

5、Java帮助文档【jdk api】

帮助文档的学习:

    1、打开帮助文档2、点击索引,搜索想要查询的类3、看什么包下的,除了在java.lang包下的类不用导包以外,其它任意包下的类在使用之前都需要导包4、看类的关系图5、看类的描述6、看有无构造方法若看到一个类中没有构造方法,大概率这个类是工具类,方法被static修饰7、若有构造方法,就可以根据构造方法创建对象了8、看成员变量9、查找自己需要的方法并使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69973.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024.10.10 鲜花(原 I 的交互程序改)

图论 2 I 的交互库Roads in E City夜曲 一群嗜血的蚂蚁 被腐肉所吸引 我面无表情 看孤独的风景 失去你 爱恨开始分明 失去你 还有什么事好关心 当鸽子不再象征和平 我终于被提醒 广场上喂食的是秃鹰 我用漂亮的押韵 形容被掠夺一空的爱情 啊 乌云开始遮蔽 夜色不干净 公园里 葬…

IDEA中git如何快捷的使用Cherry-Pick功能

前言 我们在使用IDEA开发时,一般是使用GIT来管理我们的代码,有时候,我们需要在我们开发的主分支上合并其他分支的部分提交代码。注意,是部分,不是那个分支的全部提交,这时候,我们就需要使用Cherry-Pick功能了。 对于不太习惯使用命令来操作GIT的我们来说,可以使用IDEA自…

软件工程第二次结对作业 编程实现

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281这个作业的目标 Web、APP、小程序中三选一实现,可以让用户在其中发布自己想做的项目(包含必要项目信息),用户能够在其中实时…

25年se保研经验帖

前言 之前看了许多与保研相关的经验贴,对我帮助很大,现在对我个人来说也算是保研成功了,也写下自己的一个保研经历,希望对后来人有帮助。 个人情况 本科学校:末二 排名:7% 科研:无 竞赛:计算机设计大赛、互联网+(比较水) 英语:四级低分,六级没过 最终推免学校:湖南…

2024秋软件工程结对作业(第二次之程序实现)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281这个作业的目标 根据前一次作业中设计的原型,合作开发一个微信小程序“CrossCollab”学号 102201211结对成员学号 102201317我的…

DCL并发事务问题与解决 -2024/10/10

DCL use mysql;-- 创建用户 create user yd@localhost identified by 123456; -- 修改用户的密码 alter user yd@localhost identified by 1234; -- % 表示任意主机都可以访问 -- 删除用户 drop user yd@localhost; -- 查询权限 show grants for yd@localhost; -- 授予权限 gra…

20222321 2024-2025-1 《网络与系统攻防技术》实验一实验报告

一.实验内容 1 实验目标 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目…

20222304 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1.1本周学习内容 1)反汇编 反汇编是指将计算机程序的机器代码转换回其相应的汇编代码的过程。在计算机编程和逆向工程领域中,反汇编是一种常见的技术,用于理解和分析二进制程序的功能和内部结构。 通常情况下,程序员编写的源代码会被编译器转换成机器码,这是计…