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. C. Tourist Problem 2021.3.29 晚vj拉题 cf 1600 纯数学题

    拉题链接  https://vjudge.net/contest/430219#overview 原题链接  https://codeforces.com/problemset/problem/340 ...

  2. Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟

    传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 ...

  3. 2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机)

    2021.11.10 P5231 [JSOI2012]玄武密码(AC自动机) https://www.luogu.com.cn/problem/P5231 题意: 给出字符串S和若干T,求S与每个T的 ...

  4. Day 001:PAT练习--1091 N-自守数 (15 分)

      体验了一阵子现代生活后,朕发现敲代码还是挺有意思的.所以从今天开始,小编秦始皇开始记录朕做PAT题目的过程辣,那话不多说,开始今天的题目了: 题目描述:   如果某个数 K 的平方乘以 N 以后, ...

  5. 『现学现忘』Git对象 — 16、Tree对象详解

    目录 1.Tree对象介绍 2.Tree对象说明 (1)初始化一个新的本地版本库 (2)创建一个树对象(重点) (3)创建第二个文件(重点) (4)将第一个树对象加入暂存区,使其成为新的树对 3.总结 ...

  6. 如何改变函数内部 this 的指向

    一.函数内 this 的指向 1. this 的指向是当调用函数时确定的,调用的方式不同,this 的指向也就不同. 1.1 this 一般是指向调用者. 函数类型 this 的指向 普通函数 Win ...

  7. 干货 | 亿级Web系统负载均衡几种实现方式

    一个执着于技术的公众号 负载均衡(Load Balance)是集群技术(Cluster)的一种应用技术.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web ...

  8. iptables系列教程(三)| iptables 实战篇

    一个执着于技术的公众号 实战1 服务器禁止ping iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP // 禁止任何人ping通本机 &qu ...

  9. 跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理

    摘要:本篇文章主要讲解Python调用OpenCV获取图像属性,截取感兴趣ROI区域,处理图像通道. 本文分享自华为云社区<[Python图像处理] 三.获取图像属性.兴趣ROI区域及通道处理 ...

  10. .Net Core 依赖注入(IOC) 一些简单的使用技巧

    原文链接:https://www.cnblogs.com/ysmc/p/16240534.html .Net Core 在使用IOC后,我们不必再浪费精力在管理实例的生命周期上,交给IOC代替我们管理 ...