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

常用关键字分析

 
阅读更多

 一.可见性关键字public,private,protected,default辨析
1).范围
一个项目:public
一个包:public,protected,default
一个类:public,protected,default,private
eg:

 

package test1;

public class Student {
	public String name = "张三";
	int score = 77;
	protected String cardNo = "435452354235";
	private int age = 20;

	protected void showInfo() {
		//各种可见性关键在同一个类中都能够被直接访问到
		System.out.println("Name:" + name + ",Score:" + score + ",CardNo.:" + cardNo
				+ ",Age:" + age);
	}

	public static void main(String[] args) {
		new Student().showInfo();
	}
}

 
 
public class JNStudent extends Student{
public void sowInfo(){
    //private不能被同一个包的类直接访问
    System.out.println("姓名:"+name+"学分:"+score+"卡号:"+cardNo);
    }
}


package test2;
public class UNStudent extends Student{
public void sowInfo(){
    //子类是可以直接访问父类中的protected属性和方法的
    System.out.println("姓名:"+name+"卡号:"+cardNo);
    }
}

public class Test {
public static void main(String[] args) {
Student s = new Student();
s.name = "张三";

//private,default和protected类型变量在不同包中不能被直接访问
s.score = 77;//报错
s.cardNo = "54235435342";//报错
s.age = 23;//报错

s.showInfo();//报错

UNStudent s1 = new UNStudent();
s1.showInfo();//编译能通过
}

}


2).protected和default的区别
   protected类型的方法和属性,在子类中都可以被访问到(即使不在同一个包里),而default类型的只能在同一个包里面才能被直接访问到
  
3).关键字一般使用原则:作用域尽量小
        类的属性一般为private类型,而对外提供访问的方法则是public类型

二.final关键字
1)final关键字修饰的变量一旦被赋值便不能再改变
2)final修饰的方法不能够被被继承的类重写
eg:
将上例中Student类中的属性的类型钱加上final之后,任何对他们的修改都会报错
将Student类中的showInfo()方法加上final修饰符号之后,子类将不能再对其重写
public class Student {
public final String name="张三";
int final score = 77;
protected final String cardNo = "435452354235";
    private final int age = 20;
   
    protected final void showInfo(){
    //各种可见性关键在同一个类中都能够被直接访问到
    System.out.println("姓名:"+name+"学分:"+score+"卡号"+cardNo+"年龄:"+age);
    }
   
}


三.static关键字
1)static类型的变量是在类加载时初始化,而且只加载一次,它的值被修改是,其他的类和对象使用的都是修改以后的值
  static类型变量又叫类变量,用"类名.静态变量"形式直接使用
2)static方法又叫类方法,在一个类被使用到时被加载到内存,但并不执行,用"类名.静态方法"形式直接使用
3)static代码块在类加载时便执行

此处附上一道淘宝面试题以飨读者:
public class A {
public A() {
System.out.print("A");
}
}

public class B {
public B() {
System.out.print("B");
}
}

public class C {
static A a = new A();
B b = new B();

public C() {
System.out.println();
}

public static void change() {
B b = new B();
}

public static void main(String[] args) {
C c = new C();
C.change();
}
}

答案在分析的最后位置。
分析:因为要使用到C类,所以C被加载到内存中,static A a = new A();执行执行构造方法打印出A,而静态方法的加载是不需执行的
然后程序进入main方法中.创建C类型的对象,先初始化属性,a是静态变量,已初始化,不再执行,创建B类型对象,打印出AB,在执行C的构造方法,创建C类型对象,打印出C.
接着回到main方法中,调用C的类方法change(),创建一个B类型对象,打印出AB。
所以最终的结果是AABCAB

四.super和this关键字;
1).this代表的是指当前对象,简而言之,即谁使用这个类,this便是谁
2).类似的,super在子类中出现代表当前父类对象
eg:
下例就容易混淆的地方做了详尽的分析
public class UNStudent extends Student{

private Animal pet = new Animal(){
private int length = 0;


public void showInfo(){
this.length = 56;//this引用的是匿名类的当前对象
super.showInfo();super引用的是父类当前对象
System.out.println("长度:"+length);

}


};

public void showInfo(){
super.showInfo();
pet.showInfo();
}

public static void main(String[] args) {
UNStudent s1 = new UNStudent();
s1.showInfo();
}
}
程序执行后的结果是:
姓名:张三学分:77卡号435452354235年龄:20
种类:Wolf体重:20
长度:56

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SQL-Server常用关键字、数据类型和常用语法.docx

    本文件主要涵盖了SQL Server 2008中的常用关键字、数据类型以及基本语法。 首先,我们来看一下常用的关键字。这些关键字是SQL语言的核心组成部分,用于执行各种数据库操作。例如,`CREATE`用于创建新的数据库对象,...

    ls-dyna关键字说明

    常用关键字 以下是一些常用的 LS-DYNA关键字: * `*NODE`:定义模型的节点信息。 * `*ELEMENT`:定义模型的单元信息。 * `*MATERIAL`:定义材料的机械性能。 * `*BOUNDARY`:定义模型的边界条件。 * `*OUTPUT`:...

    关键字词法分析扫描程序.rar

    程序自动产生状态转换表,这是词法分析器常用的一种数据结构,用于表示如何根据输入字符流进行状态转移。状态转换表通常基于有限状态自动机(Finite State Automaton,FSA)的概念,其中每个状态代表一种字符或字符...

    python文本关键字提取分析算法tf-idf

    tf-idf作为文档关键字提取的常用算法,python将tf-idf封装了对象,可直接使用

    非法关键字检查,检查文章中的关键字

    常用的方法有支持向量机(SVM)、随机森林(Random Forest)以及近年来流行的深度神经网络,如卷积神经网络(CNN)和循环神经网络(RNN)。 在实际应用中,非法关键字检查也面临着挑战。例如,用户可能会使用错别字...

    sql关键字字典大全

    - **GROUP BY**:用于对查询结果进行分组,是数据分析中常见的操作关键字。 #### H系列关键字 - **HAVING**:与GROUP BY配合使用,用于过滤分组后的结果,类似于WHERE子句,但作用于分组后的情况。 #### I系列...

    MYSQL关键字

    MySQL的关键字大致可以分为几大类:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)、事务控制语言(TCL)以及一些其他常用关键字。下面将逐一介绍这些关键字及其应用场景。 ##### 数据定义语言...

    C++常用的编程关键字.md

    ### C++常用编程关键字详解 #### 一、引言 C++作为一种强大的面向对象的编程语言,在软件开发领域有着广泛的应用。它不仅继承了C语言的高效性,还增加了许多高级特性,使得开发者能够构建复杂且高性能的应用程序。...

    dyna关键字命令介绍

    本文将详细介绍LS-DYNA中常用的几个关键字及其设置方法,并对每个关键字的作用和参数含义进行解释。 #### 二、LS-DYNA输入文件基础与关键字语法 LS-DYNA的输入文件主要由一系列的关键字命令组成。这些命令遵循一定...

    快速检索文件关键字检查涉密文件

    这可能涉及到对文件的加密、解密、内容分析和权限管理等多个方面。在实际应用中,这样的工具通常会遵循特定的安全标准和法规,确保符合保密规定。 在压缩包内的文件名称列表中,我们可以推测出以下几个关键点: 1....

    关键字查询 。

    此外,N-gram模型和正则表达式也是常用的关键字匹配工具。 标签中提到的“源码”可能意味着讨论的关键字查询技术与开源软件或编程有关。理解源码可以帮助开发者更深入地了解关键字查询的底层实现,比如在搜索引擎或...

    基于C#的词法分析关键字识别与变色.zip

    1. **正则表达式**:在C#中,常用正则表达式来定义和匹配不同的符号类别,如关键字、数字、字符串等。 2. **状态机**:词法分析通常使用有限状态自动机(Finite State Automaton, FSA)的概念,通过改变状态来识别...

    Android 常用log 关键字

    本文将详细介绍在Android中常用的一些Log关键字,帮助开发者更好地理解和分析应用的行为。 1. **WindowManager**: 这个关键字主要涉及到窗口管理。在示例中,`WindowManager: interceptKeyTq keycode=26` 表示...

    加亮搜索关键字,摘要出关键字的上下文

    Python是常用的编程语言,特别适合文本处理,因为它有丰富的库支持,如`re`模块用于正则表达式匹配,`string`模块用于字符串操作,甚至可能使用`BeautifulSoup`或`Pygments`等库来处理HTML文本和代码高亮。...

    编译原理实验一,词法分析

    2. **词法分析算法**:常用的词法分析算法有LL(1)、LR(0)、LR(1)等,它们用于确定源代码流中的下一个词素。实验可能要求使用这些算法之一来设计词法分析器。 3. **词法分析器生成器**:为简化词法分析器的开发,...

    matlab关键字

    MATLAB关键字 MATLAB是数学分析和数据分析的强大工具,它提供了大量的数学函数和命令来帮助用户快速地完成计算任务。下面我们将对MATLAB中的基本数学函数、常用函数、向量操作函数、永久常数、绘图函数等进行总结。...

    SQL SERVER 关键字

    - SELECT:用于从表中检索数据,是最常用的关键字之一。例如,`SELECT * FROM Customers` 将返回Customers表中的所有记录。 - FROM:指定要从中检索数据的表或视图。 - WHERE:设置检索条件,只有满足条件的行才...

    基于大规模RDF图的关键字查询

    此外,通过具体的实验分析,我们还可以了解到不同方法在实际应用中的优劣,这对于未来进一步优化关键字查询算法具有重要意义。 综上所述,随着RDF数据量的不断增加,如何高效、准确地进行关键字查询仍然是一个值得...

    SAP各模块常用表及其关键字联系

    总的来说,了解SAP各模块的常用表及其关键字联系是成为SAP专家的基础。通过深入学习和理解这些表,你可以更好地掌握SAP系统的运行机制,提升工作效率,并为企业的数字化转型贡献自己的专业能力。无论是日常的事务...

    中文分词+自动提取关键字

    在IT领域,中文分词、自动提取关键字以及词频统计是自然语言处理(NLP)中的基础任务,对于文本分析、信息检索、机器学习等多个应用至关重要。以下将详细阐述这三个概念及其重要性。 中文分词是针对中文文本处理的...

Global site tag (gtag.js) - Google Analytics