下面default类就是默认修饰符的类

1、Java中调用类中属性或方法(不管是否静态属性或方法)都要在类的方法中调用,虽然这个太基础,但今天想在类中调用静态类的静态变量,不能调用;

2、Java调用内部类公共变量:

public class A {
public class AA {
public int i = 0;
}
} public class B {
public void method() {
int i = new A().new AA().i;
}
}

3、一个.java文件内只能有一个public 类,可以有多个default类(顶级类只有public和default两种修饰符),而且源文件名必须与public类名一致,否则编译报错

如文件JavaA.java内有类public class Test{}

当用javac JavaA.java命令编译时报错:JavaA.java:1: 错误: 类Test是公共的, 应在名为 Test.java 的文件中声明

如文件JavaA.java内有类public class JavaA{}

用命令javac JavaA.java编译成功,会有JavaA.class文件生成

如文件JavaA.java内有类class Test{}

用命令javac JavaA.java编译成功,会有Test.class文件生成

另外:public static void main(String[] args){}方法可以在public类下也可以在default类下

4、内部类才可以被声明为静态类

5、父子类构造器及其静态块执行顺序

先执行父类静态块,再执行子类静态块

执行完静态块后,先执行父类构造方法,再执行子类构造方法

静态块是在定义类对象的时候执行的,构造方法是在new创建的时候执行的

6、父子类构造函数关系

1)、我们都知道,如果一个类里面没有写任何构造函数,那么默认都会有一个无参构造函数;如果一个类写了有参构造函数,没有写无参构造函数,那么默认的无参构造函数也就不存在了

2)、父类存在默认无参构造函数、或者存在有参构造函数及无参构造函数,子类中不使用super函数,不管实例化的是有参还是无参构造函数,都要先执行父类无参构造,如下图

3)、仍然按照2)中父子类关系,B类有参构造函数使用了super有参数方法,则根据super方法执行父类对应构造函数;super方法在子类构造函数中使用时,只能使用一次,而且必须放在构造函数第一行

修改后的B类及执行结果如下图,第三张图是使用两个super编译错误提示

4)、如果A类没有无参构造函数,有一个有参构造函数,那么B类必须使用super指定执行的父类构造函数,可见子类构造函数形式与父类没有必然一致性

如果B类构造函数没有使用super,编译报错

5)、如果父类重写了无参构造函数(依然没有参数),子类可以重写构造函数,或者不写构造函数;如果父类写了有参构造函数,没有无参构造函数,那么子类必须要写构造函数,且带有super,如果不写会编译报错父类没有可用构造函数错误

java中类相关注意事项的更多相关文章

  1. redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐

    redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐 1.Redis 官方网站下载: http://redis.io/dow ...

  2. Java中类的继承深入剖析

    在Java开发中,我们常常用到继承这一概念,可以说继承是Java这类面向对象编程语言的基石.正是有了继承这个概念,使得我们可以创建分等级层次的类.今天小编就和大家一起来深入聊聊Java语言的继承. 在 ...

  3. Java中类与类的关系

    在java中类和类的关系大致分三种:泛化.关联.依赖. 1. 泛化(Generalization) "XX是一个XX"关系(is a),通常使用的关键词为 extends.impl ...

  4. java 中类为啥要序列化

    java里为什么要序列化?http://zhidao.baidu.com/link?url=7_wAQ8eAl28vcJPE5OKM5Y0Bo4aINNQokHhRmI9XPszEoTO5QF-gNb ...

  5. JAVA开发相关

    JAVA开发相关1. IntelliJ IDEA开发工具熟练使用2. Maven3. Spring框架(IoC.AOP) 1)数据库相关MyBatis 2)数据库连接池 3)事务.多数据源.跨数据库分 ...

  6. 获取Java系统相关信息

    package com.test; import java.util.Properties; import java.util.Map.Entry; import org.junit.Test; pu ...

  7. java中类的创建及初始化过程

    java中类的创建及初始化过程无外乎两种情况,其一为单类的创建及初始化,其二具有继承关系的父子类创建及初始化过程.     首先说简单的,单类的创建及初始化过程.在java中我们都知道绝大部分对象的创 ...

  8. Java中类的加载、连接和初始化

    Java中类的加载.连接和初始化 类的加载.连接和初始化 先介绍一下JVM和类 JVM和类: 当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多 ...

  9. java接口相关例题

    java接口相关习题 interface Graphics{  //接口里面只能用抽象方法  public abstract double area();    }//设置 平面类class Plan ...

随机推荐

  1. im ui框架调研,对比

    1, https://github.com/jpush/aurora-imui 极光的 支持 Android/iOS/RN 提供了消息列表.输入视图 功能不多, 2,https://github.co ...

  2. 《C++程序设计教程——给予Visual Studio 2008》读书笔记1,2章

    double *p1;       //p1为指向double型的指针变量 POINT *p2;       //p2为指向POINT型(点类型)的指针变量 int (*p3)[6];     //p ...

  3. Redis 学习笔记2

    数据类型: string 字符串类型      一个键最多存储512MB     1> SET :设置key对应的value,如果key存在,同名会产生覆盖         SET key va ...

  4. React Native布局

    一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox. 在React Native中布局采用的是FleBox(弹性框)进行布局. FlexBox提供 ...

  5. JavaScript 作用域链解析

    JavaScript 中有 Scope( 作用域 ) , Scope chain( 作用域链 ) , Execute context( 执行上下文 ) , Active Object ( 活动对象 ) ...

  6. 【原创】在VS2012中采用C++中调用DLL中的函数(4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...

  7. Windows IOT 开发入门(准备工作)

    终于抽出空来了,将最近研究的东西记录下来,物联网,万物皆可联网.然后可以做到智能家居,智能生活,智能城市....一大堆.吹牛的就不说了. 在实际应用中都是一个个小的传感器在收集数据,同时把数据直接或者 ...

  8. Lucene系列二:Lucene(Lucene介绍、Lucene架构、Lucene集成)

    一.Lucene介绍 1. Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人 ...

  9. Spring系列(四):Spring AOP详解和实现方式(xml配置和注解配置)

    参考文章:http://www.cnblogs.com/hongwz/p/5764917.html 一.什么是AOP AOP(Aspect Oriented Programming),即面向切面编程, ...

  10. 如何解决#1045 - Access denied for user 'root'@'localhost' (using password: NO)问题

    1. #1045 - Access denied for user 'root'@'localhost'  (using password: NO) 解决方案 在phpMyAdmin中librarie ...