
Java编程预习2:《this关键字 & static关键字》
发布日期:2021-05-07 02:18:43
浏览次数:25
分类:精选文章
本文共 2464 字,大约阅读时间需要 8 分钟。
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变量
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月09日 23时40分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python内存地址和编译字节码
2019-03-11
Flask--简介
2019-03-11
Flask模板--过滤器与测试器
2019-03-11
16 python基础-恺撒密码
2019-03-11
06.1 python基础--结构控制
2019-03-11
Frame--Api框架
2019-03-11
Frame--WEB框架
2019-03-11
idea 在Debug 模式中运行语句中函数的方法
2019-03-11
springboot2.1.1开启druid数据库连接池并开启监控
2019-03-11
《朝花夕拾》金句摘抄(五)
2019-03-11
《朝花夕拾》金句摘抄(六)
2019-03-11
《金色梦乡》金句摘抄(六)
2019-03-11
Boostrap技能点整理之【网格系统】
2019-03-11
新闻发布项目——业务逻辑层(UserService)
2019-03-11
hibernate正向生成数据库表以及配置——hibernate.cfg.xml
2019-03-11
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
2019-03-11