一.可见性关键字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 2008中的常用关键字、数据类型以及基本语法。 首先,我们来看一下常用的关键字。这些关键字是SQL语言的核心组成部分,用于执行各种数据库操作。例如,`CREATE`用于创建新的数据库对象,...
常用关键字 以下是一些常用的 LS-DYNA关键字: * `*NODE`:定义模型的节点信息。 * `*ELEMENT`:定义模型的单元信息。 * `*MATERIAL`:定义材料的机械性能。 * `*BOUNDARY`:定义模型的边界条件。 * `*OUTPUT`:...
程序自动产生状态转换表,这是词法分析器常用的一种数据结构,用于表示如何根据输入字符流进行状态转移。状态转换表通常基于有限状态自动机(Finite State Automaton,FSA)的概念,其中每个状态代表一种字符或字符...
tf-idf作为文档关键字提取的常用算法,python将tf-idf封装了对象,可直接使用
常用的方法有支持向量机(SVM)、随机森林(Random Forest)以及近年来流行的深度神经网络,如卷积神经网络(CNN)和循环神经网络(RNN)。 在实际应用中,非法关键字检查也面临着挑战。例如,用户可能会使用错别字...
- **GROUP BY**:用于对查询结果进行分组,是数据分析中常见的操作关键字。 #### H系列关键字 - **HAVING**:与GROUP BY配合使用,用于过滤分组后的结果,类似于WHERE子句,但作用于分组后的情况。 #### I系列...
MySQL的关键字大致可以分为几大类:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)、事务控制语言(TCL)以及一些其他常用关键字。下面将逐一介绍这些关键字及其应用场景。 ##### 数据定义语言...
### C++常用编程关键字详解 #### 一、引言 C++作为一种强大的面向对象的编程语言,在软件开发领域有着广泛的应用。它不仅继承了C语言的高效性,还增加了许多高级特性,使得开发者能够构建复杂且高性能的应用程序。...
本文将详细介绍LS-DYNA中常用的几个关键字及其设置方法,并对每个关键字的作用和参数含义进行解释。 #### 二、LS-DYNA输入文件基础与关键字语法 LS-DYNA的输入文件主要由一系列的关键字命令组成。这些命令遵循一定...
这可能涉及到对文件的加密、解密、内容分析和权限管理等多个方面。在实际应用中,这样的工具通常会遵循特定的安全标准和法规,确保符合保密规定。 在压缩包内的文件名称列表中,我们可以推测出以下几个关键点: 1....
以**SELECT**关键字为例,它是最常用的SQL命令之一,用于从表中检索数据。基本语法如下: ```sql SELECT column1, column2, ... FROM table_name; ``` 例如,假设有一个名为`employees`的表,我们可以使用以下查询...
此外,N-gram模型和正则表达式也是常用的关键字匹配工具。 标签中提到的“源码”可能意味着讨论的关键字查询技术与开源软件或编程有关。理解源码可以帮助开发者更深入地了解关键字查询的底层实现,比如在搜索引擎或...
1. **正则表达式**:在C#中,常用正则表达式来定义和匹配不同的符号类别,如关键字、数字、字符串等。 2. **状态机**:词法分析通常使用有限状态自动机(Finite State Automaton, FSA)的概念,通过改变状态来识别...
本文将详细介绍在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中的基本数学函数、常用函数、向量操作函数、永久常数、绘图函数等进行总结。...
- SELECT:用于从表中检索数据,是最常用的关键字之一。例如,`SELECT * FROM Customers` 将返回Customers表中的所有记录。 - FROM:指定要从中检索数据的表或视图。 - WHERE:设置检索条件,只有满足条件的行才...
此外,通过具体的实验分析,我们还可以了解到不同方法在实际应用中的优劣,这对于未来进一步优化关键字查询算法具有重要意义。 综上所述,随着RDF数据量的不断增加,如何高效、准确地进行关键字查询仍然是一个值得...
总的来说,了解SAP各模块的常用表及其关键字联系是成为SAP专家的基础。通过深入学习和理解这些表,你可以更好地掌握SAP系统的运行机制,提升工作效率,并为企业的数字化转型贡献自己的专业能力。无论是日常的事务...