java初级笔记----final、static、匿名对象、内部类

一、final 1、final可以用来修饰类,方法,成员变量, 2、final修饰类不可以被继承,但是可以继承其他类。 3、final修饰的方法不可以被覆盖,但父类中没有被final修饰方法,子类覆盖后可以加final。 4、final修饰的变量称为常量,这些变量只能赋值一次。 修饰成员变量,需要在创建对象前赋值,否则报错。

二、static 不需要创建对象,即可调用static修饰的方法或变量。 1、被static修饰的成员变量属于类,不属于这个类的某个对象。 (也就是说,多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值跟着改变,即多个对象共享同一个static成员变量) 2、被static修饰的成员可以并且建议通过类名直接访问 3、static可以修饰成员变量成员方法。 什么时候使用static修饰成员变量? 加static修饰成员的时候,这个成员会被类的所有对象所共享。一般我们把共性数据定义为静态的变量 什么时候使用static修饰成员方法? 静态的方法只能访问静态的成员,如果静态方法中引用到了静态的其他成员,那么这个方法需要声明为静态的方法。 4、 在多态中,非静态编译看父类运行看子类,父类没有编译失败。 但多态中的静态方法,编译看父类,运行仍然看父类。因为静态和对象没有关系,属于静态绑定。

三、匿名对象 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。 例:new Person(); 1、只能使用一次 2、匿名对象可以作为方法接收的参数、方法返回值使用

四、内部类 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。 其他类也称为外部类。 1、在内部类中可以直接访问外部类的所有成员。包括私有 2、外部类访问内部类成员,必须建立内部类对象。 3、访问方法: 外部类名.内部类名 变量名 = new 外部类名().new 内部类名(); 五、局部内部类

局部内部类代码演示
        定义类
        class Party {//外部类,聚会
            public void puffBall(){// 吹气球方法
                class Ball {// 内部类,气球
                      public void puff(){
                        System.out.println("气球膨胀了");
                      }
                }
                //创建内部类对象,调用puff方法
                new Ball().puff();
            }
        }
        访问内部类
        public static void main(String[] args) {    
            //创建外部类对象
            Party p = new Party();
            //调用外部类中的puffBall方法
            p.puffBall();
        }

六、匿名内部类 匿名内部类的本质是一个实现了接口或继承了某个类的子类匿名对象.

public class Test {
        public static void main(String[] args) {
            //使用匿名内部类
            /*
             *  定义实现类,重写方法,创建实现类对象,一步搞定
             *  格式:
             *    new 接口或者父类(){
             *       重写抽象方法
             *    };
             *    从 new开始,到分号结束
             *    创建了接口的实现类的对象
             */
            new Smoking(){
                public void smoking(){
                    System.out.println("人在吸烟");
                }
            }.smoking();
        }
    }

七、包 java的包,其实就是我们电脑系统中的文件夹,包里存放的是类文件。 当类文件很多的时候,通常我们会采用多个包进行存放管理他们,这种方式称为分包管理。 在项目中,我们将相同功能的类放到一个包中,方便管理。并且日常项目的分工也是以包作为边界。 类中声明的包必须与实际class文件所在的文件夹情况相一致,即类声明在a包下,则生成的.class文件必须在a文件夹下,否则,程序运行时会找不到类。

八、权限 protected :不同包的子类可以调用 defau:相同的包可以diaoy

九、代码块 程序中用大括号括起来的代码叫代码块。 构造代码块是定义在类中成员位置的代码块 特点: 优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作 每创建一个对象均会执行一次构造代码块。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人随笔

房上的猫:数组

一.数组:  1.定义:   (1)数组就是一个变量,用于将相同数据类型的数据储存在内存中   (2)数组中的每一个数据元素都属于统一数据类型  2.基本要素:...

36390
来自专栏大前端开发

ES6特性之:类

面向对象编程是一个很流行也很让人容易理解的方法。面向对象编程中的一个核心概念就是类,我们可以把事物都抽象成一个个的类来描述他们的信息和行为。

7620
来自专栏北京马哥教育

实战案例手把手教你Python流程控制技巧

? 作者:PianoOrRock 来源: http://blog.csdn.net/pianoorrock/article/details/71131570 ...

33160
来自专栏架构之路

Java子类的父类和要实现的接口有相同的方法/函数会冲突吗

答案是,不会。子类优先实现父类的方法,虽然父类的方法和接口的方法长得一模一样。 class father{ public void f(){} } in...

35330
来自专栏我的技术专栏

C++ 异常机制分析

18740
来自专栏PHP在线

PHP5常用函数

PHP已经更新到很多个版本,最近用的比较多的要数PHP5。下面我们为大家总结了PHP5常用函数,以便大家将来实际编写代码中查看。 pathinfo返回文件路径的...

46430
来自专栏烂笔头

Python标准库笔记(4) — collections模块

目录[-] 这个模块提供几个非常有用的Python容器类型 1.容器 名称 功能描述 OrderedDict 保持了key插入顺序的di...

36070
来自专栏wym

HDU 6109 数据分割(并查集+set维护)

 题目:http://acm.hdu.edu.cn/showproblem.php?pid=6109

12910
来自专栏Java学习网

Java面试题系列之基础部分(二)——每天学5个问题

Java基础部分学习的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法,这些都是最基...

27150
来自专栏我和PYTHON有个约会

11.程序编程基础5:输入输出

python提供了3种输入输出标准文件对象,分别为标准输入、标准输出和标准错误;分别对应了sys模块中的sys.stdin,sys.stdout,sys.std...

10320

扫码关注云+社区

领取腾讯云代金券