`
LQJ2711
  • 浏览: 5413 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关键字

 
阅读更多


 以下是我们在写Java程序时需要注意的一些关键字,我们平时使用时需要多加注意。

1.访问限定符

   对变量、方法、类的区域进行限制的关键词。

   以下4种访问限定符按范围是:从大到小 

 

    1).public

       区域:在同一个程序中可以在任意地方访问

 

    2).protected

       区域:在同一个包中和同一个类,以及不同包中的子类中可以访问

 

    3).默认不写

       区域:能在同一个包中和同一个类中被访问

 

    4).private

       区域:只能在同一类中被访问

 

/**
 * 人类类
 * @author liuqingjian
 *
 */
public class person {
	public String name;
	protected String num;
	String add;
	private int age;
}
public class younger {

	public static void main(String[] args) {
		person a=new person();
		a.name="张三";
		a.num="123456";
		a.add="长沙";
		//a.age=15;//错误,The field person.age is not visible这个属性不可见。就是超出作用范围

	}
}

 

2.变量

   1.类变量

       类是由拥有共同点的所有对象组成的的集合。类变量就是所有对象的共同属性。

       范围:能在同一个类中使用。

 

    2.成员变量

       在类中定义的变量。就是描述类的外貌特征、身份信息等等。

       范围:能在同一个类中使用。

 

    3.参数变量

      只存在于成员方法变量,利于对象之间的信息交互。

      范围:只能在同一个成员方法中使用。

 

    4.局部变量

      只存在于某一块的变量,只有在这一块才可以使用,出了这一块不能使用。

      范围:在程序中的直观方式,在一对大括号之间定义,就只能在一对大括号之间使用。

 

   注意:在同一个类中,类变量和属性变量不能同名

          同一个方法中的参数变量和局部变量不能同名

          同一个类中的参数变量/局部变量是可以和类变量/属性变量同名的

 

3.this:用在构造方法和方法中

   1).this.属性名:用来表示当前对象的属性

         this.方法名:用来表示对当前对象的方法的调用 

   2).this(参数列表):用来调用当前对象的构造方法

         用法:用在构造方法的第一行,表示当前类的某一个构造方法

         具体的哪一个构造方法取决于this后面的参数列表

/**
 * 人类类
 * @author liuqingjian
 *
 */
public class person {
	public String name;
	private String add;
	private int age;
	
	public person(){
		//this(参数列表)
		this("张三","长沙");
		//this.方法名
		this.set();
	}
	public person(String name,String add){
		//this.属性名
		this.name=name;
		this.add=add;
	}
	public void set(){
		System.out.println(this.name+"住在"+this.add);
	}
}

/**
 * 主类
 * @author liuqingjian
 *
 */
public class Demo {

	public static void main(String[] args) {
		person a = new person();
		person b = new person("李四","张家界");
	}
}

  

4.super:用在子类的构造方法中

   1).super.属性名;或者 super.方法名();

        在子类中,用来表示当前类的父类对象,用来在子类中调用父类的方法

   2).不写,默认为super();

   3).super(参数列表);

        用法:在子类的构造方法中调用父类的某一个构造方法

       具体是哪一个由super后面的参数列表确定

 

/**
 * 人类类
 * @author liuqingjian
 *
 */
public class person {
	public String name;
	protected String add;
	private int age;
	
	public person(){
		//this(参数列表)
		this("张三","长沙");
		//this.方法名
		this.set();
	}
	public person(String name,String add){
		//this.属性名
		this.name=name;
		this.add=add;
	}
	public void set(){
		System.out.println(this.name+"住在"+this.add);
	}
}

/**
 * 年轻人类
 * @author Administrator
 *
 */
public class younger extends person {
	public younger(){
		//super(参数列表)
		super();
	}
	
	public void set(){
		//super.方法名()
		super.set();
		//super.属性名
		System.out.println(super.name+"现在正在"+super.add);
	}
}

/**
 * 主类
 * @author liuqingjian
 *
 */
public class Demo {

	public static void main(String[] args) {
		younger a = new younger();
	}
}

 

5.final:最终的,不可更改的

          可以用来修饰类、方法、变量

 

  用法:

         1、final修饰类          表示这个类不能被继承

         格式:public final class 类名{}

/**
 * 人类类
 * @author liuqingjian
 *
 */
public final class person {
	public String name;
	protected String add;
	private int age;
	
	public person(){
		//this(参数列表)
		this("张三","长沙");
		//this.方法名
		this.set();
	}
	public person(String name,String add){
		//this.属性名
		this.name=name;
		this.add=add;
	}
	public void set(){
		System.out.println(this.name+"住在"+this.add);
	}
}

 

 

错误: The type younger cannot subclass the final class person<!--StartFragment -->

           younger 类不能继承final class person类

 

         2、final修饰方法          表示这个方法不能被重写[覆盖]

         格式:访问限定符 final 返回值类型方法名(参数列表){}

 

/**
*父类中
*/
public final void set(){
		System.out.println(this.name+"住在"+this.add);
	}
/**
*子类中
*/
public void set(){
   
      //super.方法名()

        super.set();       

      //super.属性名
        System.out.println(super.name+"现在正在"+super.add);
}

 错误:Cannot override the final method from person

           来自person的方法不能被重写

 

         3、final修饰变量          表示这个变量不能被修改,仅且必须且只能赋值一次

         格式:

                1.修饰类、属性、局部变量:访问限定符    final     变量类型    变量名;

                2.修饰参数变量:final   变量类型    变量名;

public final String name;

public person(final String name,String add){
		//this.属性名
		this.name=name;
		this.add=add;
	}

 

 

6.static:静态的

            可以用来修饰类 属性 方法

           1static属性类属性:当前类所有的对象共用的同一个属性变量

                类属性格式:访问限定符   static    变量类型   变量名;

               可以通过对象或者类名调用

           2static 方法是类方法:当前类所有的对象共用的同一个方法

                类方法格式:访问限定符  static   返回值类型   方法名(参数列表){}

                注意:类方法中不能使用thissuper

public static void set(){
		//super.方法名()
		super.set();
		//super.属性名
		System.out.println(super.name+"现在正在"+super.add);
	}

 

 

                          类方法是调用父类还是子类重写的,只和类名有关

                         成员方法:成员方法是调用父类还是子类重写的,只和对象本身有关 

  

/**
 * 人类类
 * @author liuqingjian
 *
 */
public class person {
	public final String name;
	protected String add;
	private int age;
	
	public person(){
		//this(参数列表)
		this("张三","长沙");
		//this.方法名
		this.set();
	}
	public person(final String name,String add){
		//this.属性名
		this.name=name;
		this.add=add;
	}
	public void set(){
		System.out.println(this.name+"住在"+this.add);
	}
}

/**
 * 年轻人类
 * @author Administrator
 *
 */
public class younger extends person {
	public younger(){
		//super(参数列表)
		super();
	}
	
	public void set(){
		//super.方法名()
		super.set();
		//super.属性名
		System.out.println(super.name+"现在正在"+super.add);
	}
}

/**
 * 主类
 * @author liuqingjian
 *
 */
public class Demo {
	public static void main(String[] args) {
		younger MN = new younger();

		person bb = new younger();
		bb.set();
	}
}

 输出:



 

                         static方法中不能直接调用非静态的属性和方法

                         static的属性和方法是不需要对象调用的

                        类名.方法名();

          3static代码块[]

               执行顺序:

               1、静态代码块/静态变量【两者按照前后顺序】

                    静态代码块、静态变量作用:初始化数据

               2、主函数

               3、创建对象时,非静态代码块/非静态变量【两者按照前后顺序】

                   非静态代码块、非静态变量作用:初始化对象的数据

 

/**
 * 主类
 * 
 * @author liuqingjian
 *
 */
public class Demo {
	//非静态变量
	public A a = new A();
	//静态变量
	public static B b = new B();
	//
	{

	}
	//静态代码块
	static{
		System.out.println("DDDDD");
	}
	//非静态代码块
	public static void set(int n) {
		System.out.println("n=" + n);
	}

	public static void main(String[] args) {
		Demo MN = new Demo();
		MN.set(65);
	}
}

 

结果:

 

  • 大小: 3.1 KB
  • 大小: 9.4 KB
  • 大小: 19.6 KB
  • 大小: 11.3 KB
分享到:
评论

相关推荐

    ls-dyna关键字说明

    LS-DYNA关键字说明 LS-DYNA是 Livermore Software Technology(LST)公司开发的一款有限元分析软件,主要用于模拟和分析结构、热、流体、冲击、爆炸等领域的动力学行为。该软件广泛应用于汽车、航空航天、国防、...

    R8、R11和R13版本的DYNA关键字手册

    例如,`MESH`关键字用于定义几何模型,`MAT`系列关键字用于定义材料特性,`LOAD`关键字用于施加外部载荷,`BC`关键字用于设定边界条件等。 3. **材料模型**:LS-DYNA支持多种复杂的材料模型,如弹性、塑性、粘塑性...

    IAR的一些扩展关键字

    IAR的一些扩展关键字 在深入探讨IAR Systems的嵌入式开发工具中,特别是针对C51编程语言的环境,了解其扩展关键字对于优化代码、提高程序效率以及更好地利用硬件资源至关重要。这些关键字超越了标准C语言的范畴,...

    C语言关键字 C语言关键字 C语言关键字

    在本篇文章中,我们将深入探讨C语言中的关键字及其用法。C语言作为一种广泛使用的编程语言,在软件开发领域占据着极其重要的地位。理解并熟练掌握C语言的关键字是学习该语言的基础,也是成为一名合格程序员的...

    统计C语言关键字频度

    它的语法简洁而强大,包含了一系列的关键字,这些关键字是C语言的核心组成部分,用于定义程序的结构和控制流程。本项目聚焦于“统计C语言关键字频度”,旨在帮助开发者理解和分析C语言源代码中的关键字使用情况。 ...

    winform超级文本框richtextbox控件关键字变色

    然而,原始的`RichTextBox`控件并不支持自定义关键字高亮,即无法自动将特定的关键字变色。为了实现这一功能,开发者通常需要借助一些额外的编程技巧或第三方库。本文将详细介绍如何利用`RichTextBox`控件结合XML...

    关键字驱动测试框架的研究

    ### 关键字驱动测试框架的研究 #### 摘要与背景 随着软件开发周期的加快以及市场需求的变化,软件测试已成为确保软件质量不可或缺的一部分。在这一背景下,自动化测试因其能够提高测试效率、降低人工成本的优势而...

    在Unix上搜索含有关键字的文件

    在Unix系统中,搜索含有特定关键字的文件是一项基础但至关重要的任务。这使得用户能够快速定位到包含所需信息的文件,提高工作效率。Unix提供了一系列强大的命令行工具来帮助用户完成这项工作,其中最常用的是`grep`...

    多关键字排序 多关键字排序

    在计算机科学和编程领域,多关键字排序是一种处理数据集合的重要技术,它允许我们根据不止一个属性或关键字对数据进行排序。这种排序方法广泛应用于数据库、数据分析、信息检索等多个场景,帮助用户更有效地查找和...

    java PDF关键字定位

    本篇文章将深入探讨如何使用iText库在Java中实现PDF关键字定位。iText是一个强大的PDF处理库,它提供了丰富的API来创建、编辑和读取PDF文档。 首先,我们需要在项目中引入iText库。你提到的`itextpdf-5.5.6.jar`是...

    Html文件关键字搜索

    - **关键词匹配**:接着,程序会将输入的关键字与提取的文本进行比较,找出包含关键字的文件。 - **排序与过滤**:如果多个文件包含同一关键字,可以根据关键字出现的频率对结果进行排序;同时,可以设置过滤条件...

    SQL关键字转成大写工具

    SQL关键字是编写查询、更新、删除和管理数据库结构的基础,它们有着严格的语法规定,其中大小写的规范就是其中之一。在某些情况下,为了代码的可读性和一致性,我们可能需要将SQL语句中的关键字转换为大写。针对这一...

    PHP实现查询关键字描红1

    这个功能的主要目标是在网页上显示一段文本,并允许用户输入关键词进行搜索,搜索到的关键字将在文本中以红色加粗的方式突出显示。 首先,我们需要搭建开发环境。在这个例子中,我们使用的环境是Windows 7操作系统...

    源码关键字统计.rar

    在Java编程语言中,关键字是预定义的、具有特殊含义的词汇,它们是构成程序语法结构的基础元素。这篇关于“源码关键字统计”的主题旨在分析Java源代码文件,并计算其中出现的关键字数量。这个任务涉及到文件读取、...

    abap关键字的查询帮助

    本文将深入探讨ABAP的关键字查询帮助,为初学者提供一个清晰的入门指南。 首先,理解ABAP的基本语法是至关重要的。ABAP的语法结构与许多其他编程语言相似,例如C或PASCAL,但它具有自己独特的特性。在ABAP中,...

    标识符、关键字、常量、变量、运算符标识符标识符、关键字、常量、变量、运算符、关键字、常量、变量、运算符

    标识符、关键字、常量、变量、运算符在编程语言中的应用 在编程语言中,标识符、关键字、常量、变量、运算符都是基本的概念,它们在编程语言的设计和实现中扮演着非常重要的角色。 一、标识符 标识符是指在编程...

    批量搜索word关键字的程序V1.4版

    《批量搜索Word关键字程序V1.4版:高效查找与数据整理工具》 批量搜索Word关键字的程序V1.4版是一款专为IT从业人员和研究人员设计的实用工具,旨在提高工作效率,快速定位文档中的关键信息。它允许用户指定一个特定...

    多关键字排序的实现

    这些字段可以是数值型、字符串型或者其他类型,排序时通常按照优先级顺序进行,即第一个关键字优先,当第一个关键字相同时,再比较第二个关键字,以此类推。 二、常见的多关键字排序算法 1. **直接选择排序**:首先...

    LS-DYNA关键字手册

    标题《LS-DYNA关键字手册》透露了文档的核心内容,即介绍和解释LS-DYNA软件中使用的关键字(keywords)的具体作用。关键字是LS-DYNA这款用于有限元分析(Finite Element Analysis, FEA)以及多体动力学仿真(Multi-...

    c++关键字解释大全

    ### C++关键字详解 在C++编程语言中,关键字具有特定的语法意义,它们由编译器识别并赋予特殊含义。下面将详细介绍一系列C++的关键字及其用途。 #### asm(汇编指令) - **功能**:`asm`关键字用于嵌入汇编代码到...

Global site tag (gtag.js) - Google Analytics