Java编程预习2:《this关键字 & static关键字》
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java编程预习2:《this关键字 & static关键字》,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3091字,纯文字阅读大概需要5分钟。
内容图文
![Java编程预习2:《this关键字 & static关键字》](/upload/InfoBanner/zyjiaocheng/645/cb9e75b1607b481b96d5b7de937287dd.jpg)
this 关键字学习
我认为,this关键字实际上就是一个对自身的引用!
this关键字的用法:
第一:用于调用对象级别的方法(可视作对自身的引用
)
第二:用于在构造方法中调用其他的构造方法
这种做法必须要让关键语句:this(实参);放在构造方法的第一句!
第三:this关键字不能用在静态方法中
静态方法(包括 main 方法也是静态)是没用指向自身的this引用的,所以在静态方法中使用this关键字直接会报错!
第四:不要用this引用static方法或static变量
这样会引发警告,因为static的方法或者变量需要用 类名.方法名 的方式去使用
关于this关键字的测试代码:
package Main;
public class Main {
// this 关键字的测试
// String str = "看看是否能够访问非静态变量";// 这是一个成员变量
// 要想使用,则:static String str = "****";
public static void main(String[] args) {
// this 指针的作用1:在成员方法中使用
Student stu = new Student(10, true, "小良", "1800418123", 92);
stu.GetSex();
stu.ScoreAna();
System.out.println(stu.name + "是" + stu.AgeDivid() + "年级的学生");
// this 不能在静态方法中使用!
// System.out.println(this.str);
// this 指针的作用2:在构造函数中使用(去调用另一个构造)
// 需求:我们要求默认的构造对象,年龄是6岁,姓名是 XXX,性别是 男,学号是000000,分数是0
// 实现:用this在无参数的构造方法中调用有参数的构造方法
Student test = new Student();
test.GetSex();
test.ScoreAna();
System.out.println(test.name + "是" + test.AgeDivid() + "年级的学生");
// 测试能否用 this 引用 static 方法
// test.Test();
// 结论:可以访问,但是会警告,因为它检测到是对象在访问
}
}
package Main;
public class Student {
private
int age, score;
boolean sex;
String name, id;
public
Student() {
this(6, true, "XXX", "000000", 0);
// this(实参); 必须出现在构造函数的第一行!
}
Student(int age, boolean sex, String name, String id, int score) {
this.age = age;
this.sex = sex;
this.name = name;
this.id = id;
this.score = score;
}
int AgeDivid() {
if(this.age < 6 || this.age >= 13) {
System.out.println("学生年龄不合法!");
return 0;
}
else if(this.age >= 6 && this.age < 9)
return 1;
else if(this.age >= 9 && this.age < 11)
return 2;
else
return 3;
}
void ScoreAna() {
if(this.score > 90)
System.out.println("Very good!");
else if(this.score > 80)
System.out.println("Good!");
else if(this.score > 60)
System.out.println("Just so so!");
else
System.out.println("Go away!");
}
void GetSex() {
if(this.sex)
System.out.println("男");
else
System.out.println("女");
}
// static void Msg() {
// System.out.println("Successful");
// }
//
// void Test() {
// this.Msg();
// }
}
static 关键字学习
static可以产生静态语句块
也就是说,可以产生一个固定的语句块,在 main 方法执行前就会自上而下地执行,但是只能执行一次。
语法是:
static{
// 语句块内容
}
static 方法
第一:static 方法中不可以用 this 关键字
第二:static 方法中不可以访问非静态数据
第三:static 方法必须有: 类名.方法名 的格式访问
static 变量和常量
static变量和常量是放在:方法区
好处:
成员变量是一个对象一份,因为成员变量是对象级别的,但是如果有些变量是每个对象都是一样的,如果用成员变量则浪费空间。处理成静态变量,就可以给所有的对象都共享这一份变量空间,所以static变量是类级别的,使用:类名. 的方式访问。
应用:
如果这个变量每个对象都有,并且值都一样,就可以设为static变量
算法小弱 发布了38 篇原创文章 · 获赞 9 · 访问量 1554 私信 关注内容总结
以上是互联网集市为您收集整理的Java编程预习2:《this关键字 & static关键字》全部内容,希望文章能够帮你解决Java编程预习2:《this关键字 & static关键字》所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。