Java学习笔记06

欢迎点击我的博客


title: Java学习笔记06
date: 2019-12-25 22:25:38
tags:
- Java
- 基础
- 面向对象
- 修饰符
- 内部类
- package
- import
categories: Java学习笔记


package关键字

  • 将字节码(.class)进行分类存放 ,包其实就是文件夹
  • 格式:
    • package 包名;
    • 多级包用.分开即可,即:package 包名1.包名2;
  • 注意事项:
    • package语句必须是程序的第一条可执行的代码
    • package语句在一个java文件中只能有一个
    • 如果没有package,默认表示无包名

import关键字

  • 让有包的类对调用者可见,不用写全类名了
    • 全类名形式:包名1.包名2.类名
  • 格式:import 包名;
  • 这种方式导入是到类的名称。虽然可以最后写*,但是不建议。
  • package,import,class有顺序

修饰符

  • 修饰符:

    • 权限修饰符:private,默认的,protected,public
    • 状态修饰符:static,final
    • 抽象修饰符:abstract
  • 类的修饰符:

    • 权限修饰符:默认修饰符,public
    • 状态修饰符:final
    • 抽象修饰符:abstract
    • 用的最多的就是:public
  • 成员变量的修饰符:

    • 权限修饰符:private,默认的,protected,public
    • 状态修饰符:static,final
    • 用的最多的就是:private
  • 构造方法的修饰符:

    • 权限修饰符:private,默认的,protected,public
    • 用的最多的就是:public
  • 成员方法的修饰符:

    • 权限修饰符:private,默认的,protected,public
    • 状态修饰符:static,final
    • 抽象修饰符:abstract
    • 用的最多的就是:public
  • 其他的组合规则:

    • 成员变量:public static final
    • 成员方法:
      • public static
      • public abstract
      • public final
  • 四种权限修饰符:private 默认 protected public

修饰符访问权限本类同一个包下(子类和无关类)不同包下(子类)不同包下(无关类)
privateY
默认YY
protectedYYY
publicYYYY
  • 例:protected修饰的,只有在本类中,在同一个包里的其他类以及不同包下的子类可以访问

内部类

  • 在类中定义类,叫做内部类

  • 内部类可以直接访问外部类的成员,包括私有

  • 外部类要访问内部类的成员,必须创建对象。

    • 外部类名.内部类名 对象名 = 外部类对象.内部类对象;
    • Outer.Inner oi = new Outer().new Inner();
    • new + 类名 --> 实例化对象
  • 静态内部类:成员内部类被静态修饰

    • 访问方式:外部类名.内部类名 对象名 = 外部类名.内部类对象;
    • Outer.Inner oi = Outer.new Inner();
    • 通常把new放在最前边:Outer.Inner oi = new Outer.Inner();
  • 局部内部类:

    • 局部内部类访问局部变量必须用final修饰
  • 匿名内部类

    • 内部类的简化写法
    • 前提:存在一个类(具体类或者抽象类)或者接口
    • 格式:
      new 类名或者接口名(){
      重写方法;
      };
    • Demo:
    interface Inter{
        public void print();
    }
    
    class Outer {
        class Inner implements Inter{				//前提:存在一个类(具体类或者抽象类)或者接口
            public void print(){
                System.out.println("print");
            }
        }
        public void method(){
            //new Inner().print();					//?
            new Inter (){							//实现Inter接口
                public void print(){				//重写抽象方法
                    System.out.println("print");
                }
            }.print();
        }
    }
    
    • 实质上是一个继承了该类或者实现了该接口的子类匿名对象。
    • 匿名内部类只针对重写一个方法的时候适用,多个方法调用会很繁琐
    • 开发中:匿名内部类当作参数传递(本质把匿名内部类看作一个对象)
    • Question:
    interface Inter { void show(); }
    class Outer {
    //补齐代码 输出HelloWorld
    }
    class OuterDemo {
    	public static void main(String[] args) {
    		Outer.method().show();						//链式编程,每次调用方法后还能继续调用方法,证明返回值是对象
    	}
    }
    
    • Answer:
    class Outer {
        public static Inter method(){					//返回值是对象
            return new Inter(){
                public void show(){
                    System.out.println("HelloWorld");
                }
            };
        }
    }
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值