1.访问限定符 可以用来修饰类 属性 方法 构造方法
工程 同一个包 同一个类 不同包中的子类
public √ √ √ √
protected √ √ √
默认(null) √ √
private √
2.this 和 super
1. this 指当前类的一个对象
在构造方法中调用当前类的另外一个构造方法
2. super 指当前类的父类的对象
指调用当前类的父类的构造方法
3.final 可修饰 类 属性 方法 变量
final修饰类时则类不可被继承,修饰方法时方法不能再被重写,修饰属性时则属性不再能被修改。
public final class A{}
private final t;
public final void m(){}
4.static 可修饰类 属性 方法 代码块
1.修饰属性 static修饰的属性又称为类属性,静态属性数据保存在类空间中,只要加载类,静态属性即被调用,static修饰的数据和方法是作为整个类,而不是类的某个特定对象而存在的。
下面是static属性代码及运行结果示例:
package Keywords博客示例;
public class C {
//声明非静态属性
String name;
int age;
//声明静态属性,通常为共同属性
static String sex = "男";
public void person(String name,int age){
this.name = name;
this.age = age ;
}
public String getinfo(){
return " 姓名:"+ name +" 年龄:"+age +" 性别:"+ sex;
}
}
package Keywords博客示例;
public class D {
/**
* @param args
*/
public static void main(String[] args) {
//新建对象
C c1 = new C();
C c2 = new C();
C c3 = new C();
//通过调用C类中的person方法赋予c1,c2,c3等各对象属性
c1.person("大师兄",25);
c2.person("二师兄",20);
c3.person("小师弟",15);
//修改sex值前
System.out.println(c1.getinfo());
System.out.println(c2.getinfo());
System.out.println(c3.getinfo());
//直接用类名.static属性修改属性
//static属性不需要对象来调用,加载类时即运行
C.sex="女";
//修改sex值后
System.out.println(c1.getinfo());
System.out.println(c2.getinfo());
System.out.println(c3.getinfo());
}
}
运行结果
姓名:大师兄 年龄:25 性别:男
姓名:二师兄 年龄:20 性别:男
姓名:小师弟 年龄:15 性别:男
姓名:大师兄 年龄:25 性别:女
姓名:二师兄 年龄:20 性别:女
姓名:小师弟 年龄:15 性别:女
2.static方法代码及运行结果示例
//只需在如上代码C类中加入一个定义性别的方法
public static void Csex(String s){
sex = s;
}
这个程序需要注意的是,在static方法中,是不能够使用this关键字的. static修饰的数据和方法是作为整个类,而不是类的某个特定对象而存在的。
而this代表的是某个正在使用的当前对象.
//并在D类中调用
//直接用类名.static方法来调用方法
C.Csex("女");
运行结果相同
3.代码块代码示例
//将新建对象行改为注释即没有对象时
public class MainTest {
public static void main(String args[]){
System.out.println("B");
//MainTest mt = new MainTest();
}
{
System.out.println("A");
}
}
运行结果:B
//有对象时
public class MainTest {
public static void main(String args[]){
System.out.println("B");
MainTest mt = new MainTest();
}
{
System.out.println("A");
}
}
运行结果:BA
//有对象并给代码块加上static
public class MainTest {
public static void main(String args[]){
System.out.println("B");
MainTest mt = new MainTest();
}
static {
System.out.println("A");
}
}
运行结果:AB
//没有对象但给代码块加上static
public class MainTest {
public static void main(String args[]){
System.out.println("B");
// MainTest mt = new MainTest();
}
static {
System.out.println("A");
}
}
运行结果:AB
代码块需要新建对象将数据存于对象所属内存空间才能调用,但当用static修饰时,由于static修饰数据和方法存于类空间内,加载类时直接调用,先于对象
4. static方法与static属性之间的关系,static方法与static方法之间的关系
这里需要总结一下static方法/非static方法 可否访问 static属性/非static属性的关系:
static方法只能直接调用static方法,否则只能通过实例化对象(new对象)来访问该方法. 这里最典型的例子是main方法的调用. 我们知道,main方法是static方法, 在main方法中要调用非static方法的话,必须要先实例化一个该方法所在类的对象,通过该实例化对象去调用方法. 如果该方法是static方法,main函数即可直接用类名调用,不需再实例化类对象了~
分享到:
相关推荐
在C#编程语言中,`base`关键字主要用于访问基类成员,这对于理解类继承和多态性至关重要。本文将详细介绍`base`关键字的基本概念、使用场景及示例代码。 #### 一、`base`关键字概述 在面向对象编程中,类的继承是...
在Java编程语言中,`...理解和恰当使用`super`是掌握Java继承机制的关键,也是编写高效、可扩展代码的基础。在实际编程中,根据需求选择合适的方式使用`super`,可以避免不必要的复杂性,提高代码的清晰度和可读性。
理解并熟练掌握C语言的关键字是学习该语言的基础,也是成为一名合格程序员的必经之路。 ### 1. C语言关键字概述 C语言关键字是指由C语言本身定义的一组保留字,它们具有特定的语法含义,不能用作标识符(如变量名...
总的来说,多关键字排序是编程中的一项基础技能,理解和掌握它能帮助我们在处理复杂数据结构时游刃有余,提高程序的实用性和效率。无论是简单的文本文件处理还是复杂的数据库查询,多关键字排序都能发挥其重要作用。
本文档旨在深入探讨this与super的关键用法,帮助Java开发者们更好地理解并正确运用这两个关键字,从而提高代码的规范性、严密性和灵活性。 首先,我们需要明确this关键字的主要用途。this关键字在Java中主要用来...
`else`与`if`结合使用,构成条件选择结构,当`if`条件不满足时,执行`else`后的代码。 `enum`数据类型允许用户自定义枚举类型,定义一组具有命名常量的集合。 `float`是单精度浮点数类型,用于处理浮点计算,通常...
在使用Microsoft Word进行VBA(Visual Basic for Applications)编程时,开发者可能会遇到一个常见的问题:“无效调用ME关键字”。这一错误提示通常会打断代码的执行,给开发过程带来不小的困扰。为了解决这一问题,...
这个压缩包包含了R8、R11和R13三个不同版本的关键字手册,是理解并有效使用LS-DYNA进行计算模拟的重要参考资料。 《LS-DYNA关键字手册》是用户理解和使用该软件的核心文档,它详细介绍了如何通过一系列关键字来定义...
本项目聚焦于“统计C语言关键字频度”,旨在帮助开发者理解和分析C语言源代码中的关键字使用情况。 首先,我们要理解C语言的关键字。C语言的关键字是预定义的、有特殊含义的标识符,不能用作变量名或函数名。它们...
在 Java 编程语言中,`this` 关键字是一个非常重要的概念,它用来...理解并熟练运用 `this` 关键字对于编写清晰、高效的 Java 代码至关重要。在实际编程中,应根据需要灵活运用 `this`,以提高代码的可读性和可维护性。
Java 线程同步机制中 synchronized 关键字的理解 Java 的线程同步机制是为了解决多个线程共享同一片存储空间所带来的访问冲突问题。其中,synchronized 关键字是 Java 语言中解决这种冲突的重要机制。 ...
非保留关键字可以在不加引号的情况下用作标识符,但保留关键字则必须加引号(通常使用反引号 `` )才能避免与SQL语法冲突。例如,`BEGIN` 和 `END` 是非保留关键字,可以直接作为表或列的名称,而 `INTERVAL` 是保留...
总的来说,`with`关键字是Python中一种强大的错误处理和资源管理工具,它使得代码更加简洁,易于理解和维护。通过实现上下文管理器或者使用`contextlib.contextmanager`装饰器,我们可以轻松地为自定义对象添加`with...
此外,该工具还支持保存关键字,便于用户管理和重复使用常用的关键字列表。提供HTML和UBB代码两种选择方式,则意味着该工具不仅适用于纯文本文件,还能适应于网络环境,如论坛、博客等,其中HTML是网页的标准标记...
Python pass 关键字的使用和...* 提高代码的可读性:使用 pass 关键字可以让代码变得更加简洁、易读,让其他开发者更容易理解代码的含义。 pass 关键字是一个非常有用的工具,可以帮助我们更快速、更高效地开发代码。
深入理解 `final` 关键字可以帮助开发者写出更加安全、高效的代码。 首先,`final` 关键字可以用于声明变量。当一个变量被声明为 `final` 时,它的值一旦被赋值后就不能再改变。这适用于成员变量、局部变量以及静态...
在Java编程语言中,`transient`关键字与对象的序列化(serialization)机制密切相关,它在处理对象状态的持久化时扮演着关键角色。本文将深入探讨`transient`关键字的功能、用途以及它如何影响Java对象的序列化过程。 ...
使用这些资源,开发者可以快速查找并理解特定关键字的功能,从而提高编写代码的效率。 在ABAP中,关键字查询可以帮助开发者迅速找到所需的功能。例如,如果你在编写代码时需要进行数据操作,你可以查询“READ TABLE...
另一种常见的方式是使用字典匹配,将关键字列表与待审核内容进行逐词比对。 在实际应用中,关键字过滤还涉及到几个关键问题: 1. **误判和漏判**:过于严格的过滤可能导致正常内容被误判,而过于宽松则可能让敏感...
在本地进行HTML文件关键字搜索时,我们需要理解文件的结构,解析HTML代码,然后在其中查找匹配的文本。 1. **搜索原理**: - **文本提取**:首先,搜索程序需要读取HTML文件,并忽略所有的HTML标签,只保留文本...