A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Yunny 中级黑马   /  2015-7-20 23:59  /  294 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.包
        什么是包?
                包就是个文件夹,用于区分相同的文件名

        包的格式?
                package 包名;

                包名一定要全部都是小写的
                要符合命名规范

        包,导包,定义类的先后的顺序
                package --> import --> class

2.访问权限修饰符
        private
        默认
        protected
        public

        在同一类中:private  默认  protected  public
        在两个类中(两个类有子父类继承关系),同一个包下面:默认  protected  public
        在两个类中(两个类没有继承关系),同一包下面:默认  protected  public
        在两个类中(两个类有子父类继承关系),在不同包下面:protected  public
        在两个类中(两个类没有继承关系),在不同的包下面:public

3.修饰符
        private:成员内部类,成员变量,成员方法,构造方法
        默认:类,成员变量,成员方法,构造方法
        protected:成员变量,成员方法,构造方法
        public:类,成员变量,成员方法,构造方法
        static:成员内部类,成员变量,成员方法
        final:类,成员变量,成员方法
        abstract:类,成员方法

        所有的类前面用public
        所有的成员变量前面用private
        所有的成员方法前面用public
        所有的构造方法前面用public

4.内部类
        什么是内部类?
                一个类定义在另一类的里面,那里面的类就被称为内部类

        内部类的特点是什么?
                内部类可以直接访问外部类的非私有成员和私有成员
                外部类可以访问内部类里的内容,但是,要先创建内部类对象,然后再对其进行访问

        内部类分为哪几种?
                成员内部类:
                        如果成员内部类被public修饰的时候:
                        例:
                           class Outer {
                                   public class Innner {
                                           int i = 2;

                                           public void eat() {
                                                   System.out.println("吃");
                                           }
                                   }
                           }

                           class Demo {
                                   public static void main(String[] args) {
                                                Outer.Inner oi = new Outer().new Inner();
                                                Systme.out.println(oi.i);
                                                oi.eat();
                                   }
                           }

                        如果成员内部类被private修饰的时候:       
                        例:
                           class Outer {
                                   private class Inner {
                                                int i = 2;
                                               
                                                public void eat() {
                                                    Systme.out.println("吃");
                                                }
                                   }

                                   public void print() {
                                           Inner inner = new Inner();
                                           inner.eat();
                                           System.out.println(inner.i);
                                   }
                           }

                           class Demo {
                                        public static void main(String[] args) {
                                                Outer outer = new Outer();
                                                outer.print();
                                        }
                           }

                        如果成员内部类被static修饰的时候:
                        例:
                                class Outer {
                                        static class Inner {
                                                int i = 2;

                                                public void eat() {
                                                        System.out.println("eat");
                                                }
                                        }
                                }

                                class Demo {
                                        public static void main() {
                                                Outer.Inner oi = new Outer.Inner();
                                                oi.eat();
                                                System.out.println(oi.i);
                                        }
                                }

                局部内部类:
                        例:
                                class Outer {
                                        public void print() {
                                                class Inner {
                                                        int i = 2;

                                                        public void eat() {}
                                                }

                                                Inner inner = new Inner();
                                                inner.eat();
                                                System.out.println(inner.i);
                                        }
                                }

                                class Demo {
                                        public static void main() {
                                                Outer outer = new Outer();
                                                outer.print();
                                        }
                                }

5.匿名内部类
        什么是匿名内部类?
                没有名字的局部内部类,就叫做匿名内部类,也叫做匿名子类对象

        匿名内部类的格式是什么样的?
                new 类名/抽象类名/接口名() {
                        重写的方法;
                        自定义的方法;
                };

        什么时候可以使用匿名内部类?
                当一个方法的形式参数是抽象类或者接口的时候,我们就可以考虑使用匿名内部类(匿名子类对象)了


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马