Java学习(七)

静态成员

  • 类的静态成员经常被称为类成员,因为静态成员与类相关,而不是类的某个实例。非静态的成员变量方法经常被称为实例成员,因为非静态的成员变量和方法只存在类的实例中
  • 静态成员变量和方法不能使用引用来访问,因为引用是指类的实例,不需要类的实例来访问静态成员。访问静态成员要使用类名
  • 静态方法不能访问实例成员

静态初始化块

静态初始化块是一组当类被JVM的类加载器加载是执行的语句。静态初始化块的作用是允许类执行任何所需的只需要发生一次的设置任务

        static{
        语句出现在这里 主体}

实例化初始化块

与静态初始化块类似,它在类的对象每次实例化是执行一次。实例化初始化块在构造器调用之前执行

    public class Test{
        public Test(){构造函数}
        {实例初始化块}
        }
  • 执行顺序:子类中相应的构造器被调用,执行对super的调用,控制流程跳转到相应的父类构造器,父类构造器执行完后跳回子类构造器,在该子类构造器中的super后面的语句执行前,实例化初始化块执行

内部类

内部类可以分为四种:

  • 静态内部类:作为某个类的静态成员,存在类的内部
  • 成员内部类:作为类的成员,存在于某个类的内部
  • 局部内部类:存在于某个方法内部的类
  • 匿名内部类:存在于某个类的内部,但是无类名的类
    public class Test{
        static class Inner{静态内部类}
    }
    

静态内部类在未创建外部类的对象的情况下,可以直接创建静态内部类的对象,还可以引用外部类的静态成员变量和静态方法,但是不能引用外部类的普通成员

    public class Test{
        class Outer{
        class Inner{成员内部内}
        }
    }

成员内部类可以调用外部类的所有成员。但是只能是创建了外部类的对象后,才能引用外部的成员

    public class Test{
        public void f(){
        class Inner{成员内部内}
            }
        }
    }

局部内部类中要使用它所在方法中的局部变量,就需要将这个局部变量定义为final

    new类或者接口的名字(){
        匿名内部类的主体
            }

匿名内部类是一种特殊的内部类,它没有名字。匿名内部类的定义与对象的创建合并在一起。
匿名内部类是为唯一对象而定义的类,当我们只需要创建一个类的对象,而且用不上它的名字时,就可以用匿名内部类

时间: 2024-08-28 19:32:18

Java学习(七)的相关文章

Java学习(七):CodeFormat配置,设置Save时自动Format。附Format模板。

Eclipse添加codeFormat模板(见附件). Windows--Preference--Java--Code Style--Format,   import附件中的模板. --Java--Editor--Save Actions, 勾选Format source code,在编辑保存的时候就会自动format代码.相当方便. 格式如下: /** * A sample source file for the code formatter preview */ package mypack

Java学习(七)

class Cust{ String name; int ID; String PWD; int money; Cust(String newName,int newID,String newPWD,int newMoney){ name = newName; ID = newID; PWD = newPWD; money = newMoney; } void getMoney(int newMoney){ money = money - newMoney; } void setMoney(in

JAVA学习(七)__Spring的@Autowired注入规则

@Autowired 默认是按照byType进行注入的,但是当byType方式找到了多个符合的bean,又是怎么处理的? 经过一些代码的测试,我发现,Autowired默认先按byType,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常. 例子: @Autowiredprivate ExamUserMapper examUserMapper;  - ExamUserMapper是一个接口 1. spring先找类型为ExamUserMapper的bean 2.

java第七周学习总结

学号20145336 <Java程序设计>第3周学习总结 教材学习内容总结 Lambda 在我们编写程序时,可以使用Lambda特性去除重复的信息.Lambda表达式中this的参考对象以及toString()的接受者,是来自Lambda的周围环境,也就是看Lambda表达式是在哪个名称范畴,就能参考该范畴内的名称,像是变量或方法.Lambda表达式只是定义函数接口操作的一种方式,除此之外,只要静态方法的方法签署中,参数与返回值定义相同,也可以使用静态方法来定义函数接口操作.在只有Lambda

【JAVA学习】单例模式的七种写法

尊重版权:http://cantellow.iteye.com/blog/838473 第一种(懒汉,线程不安全): Java代码   public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } retur

第七周Java学习总结

第七周Java学习总结: 代码截图: 数据库中遇到的问题: 在下载完MySQL后,解压压缩包,再打开command+r的cmd.exe后使用mysql-5.7.21-winx64\binmysql --initialize-insecure后,出现拒绝访问的情况,在仔细核对后解决了权限的问题. 之后下载xammp,使用老师给的链接发现下载错误,而在百度搜索下载是只有32位,不过下载下来之后并不影响操作. 学习内容 1.MySQL数据库管理系统. 2.链接MySQL数据库. 3.查询操作 4.更新

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

Java 学习路线建议

在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬.2.下面对于[第一部分]的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学. 如果你是在校学生,务必要在学好基础(比如计算机系统.算法.编译原理等等)的前提下,再考虑去进行下面的学习.第一部分:对于尚未做过Java工作的同学,包括一

java学习路线及资源下载,持续整理中

java学习路线及资源下载,持续整理中 学习路线图:http://blog.csdn.net/shenzhq1980/article/details/484703371.java学习经典书籍_基础编程篇下载地址:http://blog.csdn.net/shenzhq1980/article/details/48375543书籍:Java程序设计语言.(美国)阿诺德.清晰版JAVA2核心技术第1卷.基础知识7thJAVA2核心技术卷II:高级特性7th Java语言程序设计-基础篇(原书第8版)

springMVC3学习(七)--Interceptor拦截器

Spring为我们提供了:org.springframework.web.servlet.HandlerInterceptor接口, org.springframework.web.servlet.handler.HandlerInterceptorAdapter适配器, 实现这个接口或继承此类,能够很方便的实现自己的拦截器. 有下面三个方法: Action之前运行 public boolean preHandle(HttpServletRequest request, HttpServletR