96SEO 2026-02-20 07:56 0
本博客将深入探讨Java面向对象编程的高级特性#xff0c;包括但不限于多态、继承、封装、抽象类、接口等方面的内容。

我们将从实际案例出发…在Java中面向对象编程更是核心设计理念之一为开发者提供了丰富的工具和特性来创建灵活、可扩展的应用程序。
本博客将深入探讨Java面向对象编程的高级特性包括但不限于多态、继承、封装、抽象类、接口等方面的内容。
我们将从实际案例出发结合代码示例和最佳实践带您逐步掌握这些高级特性的精髓并指导您如何在实际项目中应用它们。
当我们编写一个类时其实就是在描述其对象的属性和行为而并没有产生实质上的对象只有通过new关键字才会产出对象这时系统才会分配内存空间给对象其方法才可以供外部调用。
我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下某些特定的数据在内存空间里只有一份。
此外在类中声明的实例方法在类的外面必须要先创建对象才能调用。
但是有些方法的调用者和当前类的对象无关这样的方法通常被声明为类方法由于不需要创建对象就可以调用类方法从而简化了方法的调用。
这里的类变量、类方法只需要使用static修饰即可。
所以也称为静态变量、静态方法。
使用范围在Java类中可用static修饰属性、方法、代码块、内部类
如果权限修饰符允许在其他类中可以通过“类名.静态变量”直接访问也可以通过“对象.静态变量”的方式访问但是更推荐使用类名.静态变量的方式。
静态变量的get/set方法也静态的当局部变量与静态变量重名时使用“类名.静态变量”进行区分。
Chinese(老干妈,66);System.out.println(c1);System.out.println(c2);System.out.println(Chinese.nation);}
只要权限修饰符允许静态方法在其他类中可以通过“类名.静态方法“的方式调用。
也可以通过”对象.静态方法“的方式调用但是更推荐使用类名.静态方法的方式。
在static方法内部只能访问类的static修饰的属性或方法不能访问类的非static的结构。
因为不需要实例就可以访问static方法因此static方法内部不能有this也不能有super。
如果有重名问题使用“类名.”进行区别。
method(){System.out.println(Father.method);}public
fun(){System.out.println(Father.fun);}
//尝试重写静态方法加上Override编译报错去掉Override不报错但是也不是重写public
fun(){System.out.println(Son.fun);}
{Father.method();Son.method();//继承静态方法Father
Son();f.method();//执行Father类中的method}
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。
设计模式免去我们自己再思考和摸索。
经典的设计模式共有23种。
每个设计模式均是特定环境下特定问题的处理方法。
所谓类的单例设计模式就是采取一定的方法保证在整个的软件系统中对某个类只能存在一个对象实例并且该类只提供一个取得其对象实例的方法。
如果我们要让类在一个虚拟机中只能产生一个对象我们首先必须将类的构造器的访问权限设置为private这样就不能用new操作符在类的外部产生类的对象了但在类内部仍可以产生该类的对象。
因为在类的外部开始还无法得到类的对象只能调用该类的某个静态方法以返回类内部创建的对象静态方法只能访问类中的静态成员变量所以指向类内部产生的该类对象的变量也必须定义成静态的。
缺点当类被加载的时候会初始化static的实例静态变量被创建并分配内存空间从这以后这个static的实例便一直占着这块内存直到类被卸载时静态变量被摧毁并释放所占有的内存。
因此在某些特定条件下会耗费内存。
优点实现起来比较简单当类被加载的时候static的实例未被创建并分配内存空间当静态方法第一次被调用时初始化实例变量并分配内存因此在某些特定条件下会节约内存。
缺点在多线程环境中这种实现方法是完全错误的线程不安全根本不能保证单例的唯一性。
由于JVM需要调用类的main()方法所以该方法的访问权限必须是public又因为JVM在执行main()方法时不必创建对象所以该方法必须是static的该方法接收一个String类型的数组参数该数组中保存执行Java命令时传递给所运行的类的参数。
方法是静态的我们不能直接访问该类中的非静态成员必须创建该类的一个实例对象后才能通过这个对象去访问类中的非静态成员这种情况我们在之前的例子中多次碰到。
1、一个类中代码块若有修饰符则只能被static修饰称为静态代码块(static
如果想要为静态变量初始化可以直接在静态变量的声明后面直接赋值也可以使用静态代码块。
3、不可以对非静态的属性初始化。
即不可以调用非静态的属性和方法。
name;{System.out.println(非静态代码块country
中国;System.out.println(静态代码块);}public
如果多个重载的构造器有公共代码并且这些代码都是先于构造器其他代码执行的那么可以将这部分代码抽取到非静态代码块中减少冗余代码。
1、包含属性usernameString类型passwordString类型registrationTimelong类型私有化
2、包含get/set方法其中registrationTime没有set方法
User();System.out.println(u1.getInfo());User
User(song,8888);System.out.println(u2.getInfo());
{System.out.println(新用户注册);registrationTime
System.currentTimeMillis();username
{System.out.println(新用户注册);registrationTime
System.currentTimeMillis();this.username
registrationTime;{System.out.println(新用户注册);registrationTime
System.currentTimeMillis();}public
例如String类、System类、StringBuffer类
method(){System.out.println(father);}
method(){//错误System.out.println(son);}
final修饰某个变量成员变量或局部变量一旦赋值它的值就不能被修改即常量常量名建议使用大写字母。
如果某个成员变量用final修饰后没有set方法并且必须初始化可以显式赋值、或在初始化块赋值、实例变量还可以在构造器中赋值
Test();System.out.println(t.ID);}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback