Java开发——12.权限+内部类

简介: 权限+内部类

权限修饰符:

image.png


注意事项:

在四大权限中,public是最大的权限,private是最小的权限;
在编写代码时,如果没有特殊的考虑,建议以下使用方式:
成员变量使用 private ,隐藏细节。
构造方法使用 public ,方便创建对象。
成员方法使用 public ,方便调用

在这里只需要在设置变量的时候自己留意就行,一般较为常用的就是private修饰成员变量!除了private的使用方法有些特殊,需要get或者set方法获取...其他的仅做修饰时使用。


内部类:

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类


内部类的分类:成员内部类、局部内部类、匿名内部类;

成员内部类和成员变量,以及局部内部类和局部变量声明的位置是相同的;成员内部类声明在类中,方法外;局部内部,声明在方法中;


成员内部类定义:


//成员内部类
class 外部类 {
    class 内部类{ 
    }
}

成员内部类的注意事项:

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

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

成员内部类实例对象:


外部类名.内部类名对象名=new外部类型().new内部类型();
//注意:后面是 .new 内部类型(); 不要省略 .new


局部内部类定义:


//局部内部类class外部类 {
publicvoid方法名(){
class内部类{ 
        }
    }
}


局部内部类实例:

是在方法内部声明局部内部类对象,然后直接调用局部内部类中的方法!


publicclassTest {
publicstaticvoidmain(String[] args) {
Outerouter=newOuter();
outer.show();
    }
}
publicclassOuter {
publicvoidshow(){
// 局部内部类classInner{
publicvoidmethod(){
System.out.println("Inner 局部内部类的method方法执行了....");
            }
        }
// 在外部类的方法内使用局部内部类Innerinner=newInner();
inner.method();
    }
}


匿名内部类:

匿名内部类是内部类的简化写法。

它的本质是一个 具体实现的 父类或者父接口的 ->匿名的 子类对象。  开发中,最常用到的内部类就是匿名内部类了。


使用匿名内部类的前提

匿名内部类必须 继承一个父类 或者 实现一个父接口。


匿名内部类的定义:

new父类名或者接口名(){
// 方法重写@Overridepublicvoidmethod() {        // 执行语句    }
};


匿名内部类的使用:

以接口为例,匿名内部类的使用,代码如下:


//定义一个接口publicinterfaceFlyAble{
publicabstractvoidfly();
}



//匿名内部类的实现:publicclassInnerDemo2 {
publicstaticvoidmain(String[] args) {
FlyAblef=newFlyAble(){
//直接重写抽象方法publicvoidfly(){
System.out.println("飞!");
            }
@Overridepublicvoidfly2() {
System.out.println("飞!2222!");
            }
        };
f.fly();
f.fly2();
    }
}


匿名内部类的优点:

可以不用再写一个实现类来实现接口,可以直接使用。

相关文章
|
3天前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
8天前
|
前端开发 Oracle Java
【前端学java】java开发的依赖安装与环境配置(1)
【8月更文挑战第8天】java开发的依赖安装与环境配置
26 1
【前端学java】java开发的依赖安装与环境配置(1)
|
1天前
|
数据采集 供应链 JavaScript
分享基于Java开发的Java毕业设计实战项目题目
这篇文章分享了67套基于Java开发的毕业设计实战项目题目,覆盖了互联网、企业管理、电子政务、Java基础项目、ERP系统、校园相关、医疗以及其他细分行业等多个领域,并推荐了使用IDEA、Vue和Springboot的技术栈。
|
1天前
|
分布式计算 Java API
Java 8带来了流处理与函数式编程等新特性,极大提升了开发效率
Java 8带来了流处理与函数式编程等新特性,极大提升了开发效率。流处理采用声明式编程模型,通过filter、map等操作简化数据集处理,提高代码可读性。Lambda表达式支持轻量级函数定义,配合Predicate、Function等接口,使函数式编程无缝融入Java。此外,Optional类及新日期时间API等增强功能,让开发者能更优雅地处理潜在错误,编写出更健壮的应用程序。
6 1
|
6天前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
6天前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
11天前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
25 5
|
23天前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
58 4
|
1天前
|
人工智能 网络协议 Java
23.12月中旬 上海寻序人工智能科技-上海嘉定-Java开发实习生-薪资150-230/d 面经
关于上海寻序人工智能科技有限公司Java开发实习生岗位的面试经验分享,涵盖了技术问题如对象存储MinIO、ArrayList扩容、Object类方法、hashCode和equals方法、处理哈希冲突、JVM垃圾回收器、GC算法、网络协议、邮件协议、HTTP请求方法、Linux和Docker命令、Dockerfile制作等。
3 0
|
26天前
|
Java 运维
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
28 2