Java学习总结(不断更新中)

本文介绍了面向对象开发的基础概念,包括面向对象分析、设计及编程,并深入探讨了Java中的递归实现、this与super的使用限制、多态特性、单例模式、final修饰符的作用、以及抽象类和方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 面向对象(OO)开发 由   面向对象分析(OOA)   面向对象设计(OOD)   面向对象编程(OOP)三部分组成。


2.递归一定要向已知方向递归!!

例子:

f(0)=1  f(1)=4 …..f(n+2)=2f(n+1)+f(n),要求f(10)

代码应写为:

public int f(n){

    if( n == 0 ){

        return 1;

    }

    else if( n == 1){

        return 4;

    }

    else{

        return 2*f(n-1) + f(n-2);

    }

}


如果已知f(20)= 1 f(21)=4 ……..f(n+2)=2f(n+1)+f(n),要求f(10)

代码应写为:

public int f(n){

    if( n == 20 ){

        return 1;

    }

    else if( n == 21){

        return 4;

    }

    else{

        return f(n+2) - 2*f(n+1);

    }

}


3. this 和 super 不能用在static 的方法中。


4.多态          java中引用变量有两个类型,一个是编译类型,一个是运行时的类型 

相同类型的变量,执行同一个方法时呈现不同的行为特征。这就是多态。

例子:  有一个父类叫BaseClass 有一个子类叫SubClass,继承自BaseClass. 子类覆盖了父类中的一个test方法。声明变量的时候这么写: BaseClass temp = new SubClass();  这个时候调用temp的test方法,此时表现出的行为就是子类里重载后的行为,而不是父类中原来的行为。

个人认为:出现多态的根源是JAVA允许将子类对象直接赋给一个父类的引用变量。

这种情况下如果temp变量执行一个只有子类才有的方法,就会编译错误。因为temp的编译类型是BaseClass,编译无法调用子类里的方法。

如果一定要调用子类里的方法,就要使用引用变量的强制类型转换。

引用变量的强制类型转换只能将编译类型时父类,运行类型时子类的变量转换成子类类型。不能用于两个无关的引用变量类型。

instanceof 运算符可以在强制类型转换前判断一个对象是否为后一个类的实例。


引用变量来访问其包含的实例属性时,系统总是访问其编译时类所定义的属性,而不是运行时类所定义的属性。


5. 基本数据类型的包装类

这些包装类有个静态方法,可以把字符串转换成对应的基本类型parseXXX() ,反之,String类里也提供了valueOf()的方法实现了反向的功能。

例如

String aaa = "123";

int a = Integer.parseInt(aaa);

反向

int a = 1234;

String aaa = a.valueOf(a);


6.object类的toString() 方法

toString()方法是一个自我描述的方法。总是返回对象实现类的 类名+@+hashCode,可以在重写toString()方法来实现自己想要的返回。


7. == 来判断两个变量是否相等。还有 equals()方法

如果两个都是基本变量类型,且都是数值型(不一定要求数据类型严格相同),只要变量的值相等就会返回true

如果两个是引用类型的变量,必须指向同一个对象的时候,== 才会返回true.


equals()方法是object类提供的一个实例方法。大致和==相似,当变量是引用类型的时候也需要指向同一个对象才能返回true。但是java中String的equals()方法已经重写了,只要两个字符串包含的字符序列相同就能返回true。

equals()的好处是它可以按照自己想要的相等标准被重写。


8. 单例类

首先,构造函数被隐藏了(private)

然后,需要一个static的方法来构造类(这个方法里调用了隐藏起来的构造方法)

最后,需要一个static的属性来缓存构造出来的类实例,下次再创建时返还第一次创建的类实例。

例子:

class Singleton{

    private static Singleton  instance;

    private Singleton();

    public static Singleton getInstance(){

        if(instance == null){

            instance = new Singleton();

        }

        return instance;

    }

}


9.final 修饰符  被修饰的变量获得初始值后不能被重新赋值。

final修饰成员变量的时候:

类属性:可在静态初始化中、声明该属性时指定初始值。

实例属性:可在非静态初始化、声明该属性、构造器中指定初始值。


final修饰基本类型变量和引用类型变量的区别:

修饰基本类型变量时,不能对变量重新赋值,因此基本类型变量不能被改变。

修饰引用类型变量时,变量保存的仅仅时一个引用,final只保证这个引用的地址不会改变,即一直引用一个对象,而对象完全可以发生改变。


final修饰的方法不能被重写,但可以被重载(就是传入参数不一样)


10. abstract 修饰抽象类和抽象方法,不能和final、static、private同时使用

接口比抽象类更抽象,接口只包含抽象方法。












资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值