遇到的java 运行时错误:

NullPointerException空指针  ,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)

遇到一个错误:

No enclosing instance of type Employee is accessible

StacticBlock.java中定义了Employee 类和 Manager类。

class Employee{
public Employee (String aName,double aSalary){
name= aName;
salary=aSalary;
}
...
} class Manager extends Employee{ public Manager(String aname,double asalary)
{
super(aname,asalary);
this.bonus =0;
}
...
}

在另外一个Emp.java中报错:No enclosing instance of type Employee is accessible

    Manager m = new Manager("sgs",203.2); //error
m.setBonus(800);
Employee e = new Employee("dingwei",8300);
Employee f= new Employee("pangzi",8000);

解决办法: 将Manager类改成:public static class Manager extends Employee{...}

网上查了下,很多说到是静态方法调用动态方法了。

关于静态方法和实例方法到区别:

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
在hasStaticMethod.java中定义两个方法:
public class hasStaticMethod {

    public static void callMe()
{
System.out.println("I'm a static method from hasStaticMethod.");
} public void callAgain()
{
System.out.println("I'm not static method");
}
}

在InvokeStaticMethod.java中调用两种方法时:

public class InvokeStaticMethod {

    public static void main(String[] args){
//静态方法可以直接调用,不用实例化
hasStaticMethod.callMe();
//实例方法,需要先实例化一个对象。
hasStaticMethod d = new hasStaticMethod();
d.callAgain(); }
}
public class staticMethod {
private static int sa; //定义一个静态成员变量
private int ia; //定义一个实例成员变量 //下面定义一个静态方法
static void statMethod(){
int i = 0; //正确,可以有自己的局部变量sa = 10;
//正确,静态方法可以使用静态变量
otherStat();
//正确,可以调用静态方法
ia = 20; //错误,不能使用实例变量
insMethod(); //错误,不能调用实例方法
} static void otherStat(){} //下面定义一个实例方法
void insMethod(){ int i = 0; //正确,可以有自己的局部变量
sa = 15; //正确,可以使用静态变量
ia = 30; //正确,可以使用实例变量
statMethod(); //正确,可以调用静态方法 }
}

静态方法只能访问静态成员,实例方法可以访问静态和实例成员。
之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样的道理,静态方法中也不能使用关键字this。

最新文章

  1. Web缓存杂谈
  2. JS-自制提速小工具:开发页面时需要按比例计算宽高值的快速计算器
  3. Linux vi/vim(转载)
  4. Ubuntu 系统 update-rc.d 命令
  5. mvc、三次握手
  6. springmvc 双亲上下文导致的 No mapping found for HTTP request
  7. Stanford CoreNLP--Split Sentence
  8. Multiple dex files define Lcom/sina/sso/RemoteSSO错误解决办法
  9. AJP协议总结与分析
  10. oracle设备
  11. HDU ACM 1290 献给杭电五十周年校庆的礼物
  12. PowerDesigner设置
  13. python 模块添加
  14. Linux OpenGL 实践篇-6 光照
  15. 1.使用RNN做MNIST分类
  16. javascript 之 面向对象【理解对象】
  17. 【转载】使用Jquery操作Cookie对象
  18. slice的部分说明
  19. php 出现Warning: A non-numeric value encountered问题的原因及解决方法
  20. ML: 降维算法-概述

热门文章

  1. 使用getopt 解析参数
  2. 攻防世界 WEB 高手进阶区 XCTF 4th-CyberEarth ics-06 Writeup
  3. Mysql教程:(五)多表查询
  4. 通过t-sql定期自动备份SQL Server 上的所有数据库
  5. Spark面试题(五)——数据倾斜调优
  6. Python学习手册(第四版)——使用入门(自学用)
  7. System.Web.Optimization
  8. 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明
  9. 使用protobuf-java-format包 JsonFormat转Json部分默认值字段消失问题
  10. NOI2021 去不了记