title: Java基础语法(11)-面向对象之关键字

blog: CSDN

data: Java学习路线及视频

1.this

  1. this是什么

它在方法内部使用,即这个方法所属对象的引用;

  1. class Person{
  2. private String name ;
  3. private int age ;
  4. public Person(String name,int age){
  5. this.name = name ;
  6. this.age = age ;
  7. }
  8. public void getInfo(){
  9. System.out.println("姓名:" + name) ;
  10. this.speak();
  11. }
  12. public void speak(){
  13. System.out.println(“年龄:” + this.age);
  14. }
  15. }

它在构造器内部使用,表示该构造器正在初始化的对象。

this可以作为一个类中构造器相互调用的特殊格式

  1. class Person{
  2. private String name ;
  3. private int age ;
  4. public Person(){ // 无参构造器
  5. System.out.println("新对象实例化") ;
  6. }
  7. public Person(String name){
  8. this(); // 调用本类中的无参构造器
  9. this.name = name ;
  10. }
  11. public Person(String name,int age){
  12. this(name) ; // 调用有一个参数的构造器
  13. this.age = age;
  14. }
  15. public String getInfo(){
  16. return "姓名:" + name + ",年龄:" + age ;
  17. }
  18. }

2.package,import

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。

包可以包含类和子包,划分项目层次,便于管理

  1. JDK中主要的包
  2. 1. java.lang---包含一些Java语言的核心类
  3. 2. java.net----包含执行与网络相关的操作的类和接口。
  4. 3. java.io ----包含能提供多种输入/输出功能的类。
  5. 4. java.util----包含一些实用工具类
  6. 5. java.text----包含了一些java格式化相关的类
  7. 6. java.sql----包含了java进行JDBC数据库编程的相关类/接口
  8. 7. java.awt----包含了构成抽象窗口工具集

为使用定义在不同包中的Java类,需用import语句来引入指定包层次下所需要的类或全部类(.*)。

import语句告诉编译器到哪里去寻找类。

  1. import 包名. 类名;
  2. import pack1.pack2.*; //表示引入pack1.pack2包中的所有结构

注意

  1. 1. 在源文件中使用import显式的导入指定包下的类或接口
  2. 2. 声明在包的声明和类的声明之间。
  3. 3. 如果需要导入多个类或接口,那么就并列显式多个import语句即可
  4. 4. 举例:可以使用java.util.*的方式,一次性导入util包下所有的类或接口。
  5. 5. 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
  6. 6. 如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的是哪个类。
  7. 7. 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
  8. 8. import static组合的使用:调用指定类或接口下的静态的属性或方法

3.super

在Java类中使用super来调用父类中的指定操作

super可用于访问父类中定义的属性

super可用于调用父类中定义的成员方法

super可用于在子类构造器中调用父类的构造器

注意

尤其当子父类出现同名成员时,可以用super表明调用的是父类中的成员

super的追溯不仅限于直接父类

super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

  1. class Country {
  2. String name;
  3. void value() {
  4. name = "China";
  5. }
  6. }
  7. class City extends Country {
  8. String name;
  9. void value() {
  10. name = "Shanghai";
  11. super.value(); //调用父类的方法
  12. System.out.println(name);
  13. System.out.println(super.name);
  14. }
  15. public static void main(String[] args) {
  16. City c=new City();
  17. c.value();
  18. }
  19. }

4.this与super的区别

5.static

使用范围

​ 在Java类中,可用static修饰属性、方法、代码块、内部类

被修饰后的成员具备以下特点

  1. 随着类的加载而加载
  2. 优先于对象存在
  3. 修饰的成员,被所有对象所共享
  4. 访问权限允许时,可不创建对象,直接被类调用

在static方法中不能有this,也不能有super

  1. public static String name = "这是一个圆";

6.final

在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”

  • final标记的类不能被继承。提高安全性,提高程序的可读性。
  • final标记的方法不能被子类重写。
  • final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次
  1. public final class Test {
  2. public static int totalNumber = 5;
  3. public final int ID;
  4. public Test() {
  5. ID = ++totalNumber; // 可在构造器中给final修饰的“变量”赋值
  6. }
  7. public static void main(String[] args) {
  8. Test t = new Test();
  9. System.out.println(t.ID);
  10. final int I = 10;
  11. final int J;
  12. J = 20;
  13. J = 30; // 非法
  14. }
  15. }

7.结语

2020-3-31: Java基础语法(10)-面向对象之三大特征

Java基础语法(11)-面向对象之关键字的更多相关文章

  1. Java基础语法(9)-面向对象之类的成员

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  2. Java基础语法(10)-面向对象之三大特征

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  3. Java基础学习笔记五 Java基础语法之面向对象

    面向对象 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生( ...

  4. Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组

    类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...

  5. Java基础语法(一)<注释,关键字,常量,变量,数据类型,标识符,数据类型转换>

    从今天开始,记录学习Java的过程.要学习Java首先得有环境,至于环境的安装我就不说了,百度有很多教程,比如:http://jingyan.baidu.com/article/20095761904 ...

  6. java基础语法——方法,static关键字

    一:方法: 1.什么是方法: 通俗地讲,方法就是行为.它是完成特定功能的代码块能执行一个功能.它包含于类和对象中. 2.为什么要有方法: *提高代码的复用性. *提高效率 *利于程序维护 3.命名规则 ...

  7. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  8. JAVA基础语法——标识符、修饰符、关键字(个人整理总结)

    JAVA基础语法——标识符.修饰符.关键字 一 . 标识符 1.1    什么是标识符 就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Dem ...

  9. Java基础语法(1)-关键字与保留字

    title: Java基础语法(1)-关键字与保留字 blog: CSDN data: Java学习路线及视频 1.关键字 关键字(keyword)的定义和特点 定义:被Java语言赋予了特殊含义,用 ...

随机推荐

  1. 学了C++不知道怎么搞后台开发?先看看这份学习路线吧!

    作者:AJ 在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗.不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发. ...

  2. &#160;前端面试题目总结1

    数据类型 js中的数据类型有两类:值类型和引用类型 值类型:number.string.boolean.Symbol.undefined 引用类型:null.数组.对象 使用typeof能用来干什么 ...

  3. css实现边框动画效果

    最近写了几个页面都用到css动画,以及很多before,after伪类.在此记录一下成果.css边框循环动画,页面效果如下: 1.沿着边框动画的图形使用before,after伪类写的.当时想用切图来 ...

  4. Asp.Net Core IdentityServer4 中的基本概念

    一.前言 这篇文章可能大家会觉得很空洞,没有实际的实战东西,主要是自己整理出来的IdentityServer4 的一些概念性的东西:如果你对IdentityServer4有过一定的实战经验,可以跳过不 ...

  5. 基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题

    首先,大家看到这个问题,可能并不陌生,而且脑子里第一映像就是使用mava中的clear package 或者 clear install进行打包,然后在项目中的target文件夹下面找到xxx.war ...

  6. VUE实现Studio管理后台(完结):标签式输入、名值对输入、对话框(modal dialog)

    一周的时间,几乎每天都要工作十几个小时,敲代码+写作文,界面原型算是完成了,下一步是写内核的HTML处理引擎,纯JS实现.本次实战展示告一段落,等RXEditor下一个版本完成,再继续分享吧.剩下的功 ...

  7. linux-TFTP服务

    1.TFTP协议简介TFTP,全称是 Trivial File Transfer Protocol(简单文件传输协议),基于 UDP 实现,该协议简单到只能从远程服务器读取数据或向远程服务器上传数据. ...

  8. win下安装virtualenv和创建django项目

    一.由于一直在Linux环境下开发,想了解一下winPython开发环境: 1.打开cmd,pip install virtualenv 2.virtualenv test 由于这样需要进入到目录下才 ...

  9. JavaFX之多个FXML加载和通信

    前言 在使用了FXML设计布局后,新的问题随之而来,当一个程序需要多个界面时,我们不可能在一个FXML中写出全部布局,这样太过于臃肿不易查看和维护(当然非要这么做也是可以的),这里就涉及到如何在一个F ...

  10. 数学-Matrix Tree定理证明

    老久没更了,冬令营也延期了(延期后岂不是志愿者得上学了?) 最近把之前欠了好久的债,诸如FFT和Matrix-Tree等的搞清楚了(啊我承认之前只会用,没有理解证明--),FFT老多人写,而Matri ...