this

  • 理解为当前对象
//测试
public static void main(String[] args){
Person person = new Person(3, "xiaoMing");
}
//创建一个类:
class Person{
int age;
String name;
public Person(int age,String name){
this.age = age; //this:当前对象,在这里是指person这个对象。
this.name = name;
}
}
  • 可以调用构造器

    ①调用本类的其他构造器

    ②不能调自己

    ③构造器中使用this,则必须放在构造器的 首行
class Person{
int age;
String name;
public Person(int age){ //①
this.age = age;
} public Person(int age, String name){
this(age); //调用① 构造器
this.name = name;
}
}
//测试:
public static void main(String[] args){
Person person = new Person(3, "xiaoMing");
}

super

  • ① 若子类的属性(方法等)和父类的重名,可以用super.属性(方法等)调用父类的属性(方法等)【重写是个范例】
  • ② super调用父类构造器

    在子类构造器中声明super,则必须声明在首行,this和super不能同时出现

    在构造器首行,没有显式出现super,默认是super()构造器

static

  • 不能修饰构造器
  • static修饰的变量,叫静态变量,没有用static修饰的变量叫 实例变量,静态变量内存种独一份,被所有对象共享,当且仅当类被初次加载时会被初始化,而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
  • 静态变量在内存中存在一份,在方法区中的静态域中。
  • static修饰方法,叫静态方法,静态方法中只能声明静态属性,方法。

    非静态方法即可调用静态方法也可调用非静态方法
  • 在static方法中,不能使用this和super关键字

final

  • final修饰的属性可以被赋值的地方有:显式初始化,代码块中初始化,构造器中初始化
class Person{
int age ;
String name;
final int C = 3; //显式初始化
final int B ;
final int A ; {
B = 3; //代码块中赋值
} public Person(){
A = 3; //构造器中赋值
} public Person(int n){
A = n; //若用构造器赋值,则每写一个构造器都要赋值一次,
//因为有的构造器不一定用
}
}
  • 修饰类:此类不能被继承,'断子绝孙',不能说明该类中的属性和方法是final的
  • 修饰方法:此方法不能被重写,但是仍然可以继承
  • 修饰属性:

    ①若该属性是基本数据类型,则不能被修改

    ②若该属性是引用数据类型,如数组,对象,则该对象,数组的值可以被修改,

    但是引用不能修改
//1.
class Dog1{
String name;
//编译错误,age必须赋值
final int age = 3;
}
//测试
final Dog1 dog = new Dog1();
System.out.println(dog);
dog.name = "dd";
System.out.println(dog.name); //输出dd
dog.name = "cc";
System.out.println(dog.name); //输出cc,里面的值可以改 dog = new Dog1(); //编译错误,引用不能修改
//2.
final int[] arr = {11,33,44};
arr[2] = 2; //可以修改
System.out.println(arr[2]); //输出2
arr = new int[]{1}; //error,编译错误,引用不能修改
  • final还可以修饰局部变量:作用就是让局部变量不能再修改了
class Person{
public void show(final int a){
a = 3; //error,表示a只能使用不能修改
} public void show2(int a){
final int b = 3; //表示b不能修改了
b = 4; //error
}
} static final 修饰属性:表示全局常量

关键字——this,super,static,final的更多相关文章

  1. this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

    1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     ...

  2. java面试官:兄弟简单谈谈Static、final、Static final各种用法吧

    前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从 ...

  3. java中的Static、final、Static final各种用法详解

    前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从 ...

  4. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  5. java基础9 main函数、this、static、super、final、instanceof 关键字

    一.main函数详解 1.public:公共的.权限是最大的,在任何情况都可以访问  原因:为了保证jvm在任何情况下都可以访问到main法2.static:静态,静态可以让jvm调用更方便,不需要用 ...

  6. Java 构造方法及关键字:this、super、final、static

    一.构造方法 1.概念 在创建对象时,需要明确对象的属性值,即当使用new关键字创建对象时,同时给对象的属性初始化值. 这就需要用到构造方法.构造方法的格式: 修饰符 构造方法名(参数列表){ } 构 ...

  7. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

  8. Java中static、this、super、final的用法

    一.          static 请先看下面这段程序: public class Hello{public static void main(String[] args){//(1)System. ...

  9. java中static、this、super、final用途、用法及实例

    一.static 请先看下面这段程序: public class Hello { public static void main(String[] args){ //(1) System.out.pr ...

随机推荐

  1. 解决pycharm的爬虫乱码问题(初步了解各种编码格式)

    Ascii码(American Standard Code for Information Interchange,美国信息互换标准代码):最初计算机只在美国使用时,只用8位的字节来组合出256(2的 ...

  2. Java学习day29

    线程礼让(yield):礼让线程,让当前正在执行的线程暂停,但是不阻塞:让线程从运行状态转为就绪状态:让CPU重新调度,礼让不一定成功 合并线程(join):待此线程执行完毕后,再执行其他线程,其他线 ...

  3. python 包之 redis 数据库操作教程

    一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...

  4. 多行,溢出隐藏 css

     .ellipsis-line{width:200px; line-height:18px;font-size:14px; overflow:hidden; text-overflow:ellipsi ...

  5. VSCode 前端常用插件集合

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 但工欲善其事必先利其器,以下是本人为前端开发收集的常用的vs ...

  6. 攻防世界-MISC:simple_transfer

    这是攻防世界高手进阶区的题目,题目如下: 点击下载附件一,得到一个流量包,用wireshark打开搜索flag无果,无奈跑去查看WP,说是先查看一下协议分级,但是并没有像WP所说的协议的字节百分比占用 ...

  7. [AcWing 51] 数字排列

    点击查看代码 class Solution { public: vector<vector<int>> res; vector<vector<int>> ...

  8. lab_0 清华大学ucore实验环境配置详细步骤!(小白入)

    实验步骤 1.下载项目 从github上 的https://github.com/kiukotsu/ucore下载 ucore lab实验: git clone https://github.com/ ...

  9. Linux -4-作业练习

    1.编写脚本实现登陆远程主机.(使用expect和shell脚本两种形式). expect脚本格式  expect总结点击查看 登录直接远程控制主机 #!/usr/bin/expect # # set ...

  10. 团队Arpha4

    队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 服务器网络 ...