博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象(五)
阅读量:4562 次
发布时间:2019-06-08

本文共 4413 字,大约阅读时间需要 14 分钟。

/*1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返回值类型:        类名:返回的是该类的对象        抽象类名:返回的是该类的子类对象        接口名:返回的是该接口的实现类的对象    (3)链式编程        对象.方法1().方法2().......方法n();                这种用法:其实在方法1()调用完毕后,应该一个对象;                  方法2()调用完毕后,应该返回一个对象。                  方法n()调用完毕后,可能是对象,也可以不是对象。2:包(理解)    (1)其实就是文件夹    (2)作用:        A:区分同名的类        B:对类进行分类管理            a:按照功能分            b:按照模块分    (3)包的定义(掌握)        package 包名;                多级包用.分开。    (4)注意事项:(掌握)        A:package语句必须在文件中的第一条有效语句        B:在一个java文件中,只能有一个package        C:如果没有package,默认就是无包名    (5)带包的编译和运行        A:手动式        B:自动式(掌握)            javac -d . HelloWorld.java            3:导包(掌握)    (1)我们多次使用一个带包的类,非常的麻烦,这个时候,Java就提供了一个关键字import。    (2)格式:        import 包名...类名;        另一种:            import 包名...*;(不建议)    (3)package,import,class的顺序        package > import > class    4:权限修饰符(掌握)    (1)权限修饰符                    本类    同一个包下    不同包下的子类    不同包下的无关类        private        Y        默认        Y        Y        protected    Y        Y            Y        public        Y        Y            Y                Y    (2)这四种权限修饰符在任意时刻只能出现一种。        public class Demo {}        5:常见的修饰符(理解)    (1)分类:        权限修饰符:private,默认,protected,public        状态修饰符:static,final        抽象修饰符:abstract    (2)常见的类及其组成的修饰        类:            默认,public,final,abstract                        常用的:public                成员变量:            private,默认,protected,public,static,final                        常用的:private                    构造方法:            private,默认,protected,public                        常用的:public                成员方法:            private,默认,protected,public,static,final,abstract                        常用的:public    (3)另外比较常见的:        public static final int X = 10;        public static void show() {}        public final void show() {}        public abstract void show();6:内部类(理解)    (1)把类定义在另一个类的内部,该类就被称为内部类。        举例:把类B定义在类A中,类B就被称为内部类。    (2)内部类的访问规则        A:可以直接访问外部类的成员,包括私有        B:外部类要想访问内部类成员,必须创建对象    (3)内部类的分类        A:成员内部类        B:局部内部类    (4)成员内部类        A:private 为了数据的安全性        B:static 为了访问的方便性                成员内部类不是静态的:            外部类名.内部类名 对象名 = new 外部类名.new 内部类名();        成员内部类是静态的:            外部类名.内部类名 对象名 = new 外部类名.内部类名();    (5)成员内部类的面试题(填空)        30,20,10                class Outer {            public int num = 10;                        class Inner {                public int num = 20;                                public viod show() {                    int num  = 30;                                        System.out.println(num);                    System.out.println(this.num);                    System.out.println(Outer.this.num);                }            }        }    (6)局部内部类        A:局部内部类访问局部变量必须加final修饰。        B:为什么呢?            因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。            所以,堆内存还是用该变量,而改变量已经没有了。            为了让该值还存在,就加final修饰。            通过反编译工具我们看到了,加入final后,堆内存直接存储的是值,而不是变量名。    (7)匿名内部类(掌握)        A:是局部内部类的简化形式        B:前提            存在一个类或者接口        C:格式:            new 类名或者接口名() {                重写方法;            }        D:本质:            其实是继承该类或者实现接口的子类匿名对象    (8)匿名内部类在开发中的使用        我们在开发的时候,会看到抽象类,或者接口作为参数。        而这个时候,我们知道实际需要的是一个子类对象。        如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。                interface Person {            public abstract void study();        }                class PersonDemo {            public void method(Person p) {                p.study();            }        }                class PersonTest {            public static void main(String[] args) {                PersonDemo pd = new PersonDemo();                pd.method(new Person() {                    public void study() {                        System.out.println("好好学习,天天向上");                    }                });            }        }            (9)匿名内部类的面试题(补齐代码)        interface Inter {            void show();        }                class Outer {            //补齐代码            public static Inter method() {                return new Inter() {                    public void show() {                        System.out.println("HelloWorld");                    }                    };            }        }                class OuterDemo {            public static void main(String[] args) {                Outer.method().show(); //"HelloWorld"            }        }*\

转载于:https://www.cnblogs.com/dreamOfChen/p/4884453.html

你可能感兴趣的文章
win7每天出现taskeng.exe进程的解决方案
查看>>
React Children
查看>>
大数据等最核心的关键技术:32个算法
查看>>
Maven多模块项目搭建
查看>>
redis列表list
查看>>
雷林鹏分享: C# 简介
查看>>
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
查看>>
实用类-<Math类常用>
查看>>
构建之法阅读笔记之四
查看>>
10.15习题2
查看>>
Windows Server 2008 R2 备份与恢复详细实例
查看>>
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>
java线程系列---java5中的线程池
查看>>
SQL表连接
查看>>
新秀系列C/C++经典问题(四)
查看>>
memset函数具体说明
查看>>
经常使用的android弹出对话框
查看>>