- 博客(13)
- 收藏
- 关注
原创 Java中Comparable比较器的基本用法
一,比较器基本使用 当我们使用Arrays.sort(Object[] a)对对象数组进行排序时,该对象所在的类必须实现Comparable接口,这个接口用于指定对象的排序规则。 在Comparable接口中是用泛型定义的,因此子类需要实现特定的类在Comparable接口中只有一个 compareTo方法,该方法返回一个int类型。 在这个方法中只能返回三个int类型的值:1,-1,0 例如设置一个学生的类,按照学生的年龄进行排序。 public class Student im
2022-05-18 21:49:02 1059
原创 Java复用
1.复用的概念 复用代码是Java众多引人注目的功能之一 但是很多人并不能确切的知道复用是什么? 从语文的角度上把复用两字拆开进行组词,就是复制和使用.但是在Java语言中这只是最简单的一种用法,作为一种面向对象的语言,java有着更多更高级的复用方法。 2. 复用的方法 1.第一种方法很简单粗暴,当你创建了一个类后,想要在新的类中使用你现用的类,你便需要在新的类中创建一个现有类的对象,这个新的类便是由现有类的对象所组成,这种方法成为组合,简单的说这就是一种复制粘贴。 2.第二种方法更细致一些,
2022-05-09 12:28:10 1058
原创 Java中的main方法
main方法是java应用程序中的一个入口,它被声明为公有静态方法,参数是一个字符串数组,返回值为void类型。 一个java文件可以有无数个main方法,但是一个类中只能有一个main方法,当想要运行不同的main时,可以在左上角的白色小箭头处选择要运行的main方法,然后点击右边的绿色箭头即可运行。 package multiplexing; class Cleanser{ private String s ="Cleanser"; public void append(St.
2022-05-08 15:35:21 7877
原创 Warshall算法求传递闭包以及为什么要按列展开
算法描述:Warshall算法是求传递闭包的有效算法,算法步骤如下 相信给出了算法的实现步骤,大多数人都可以跟着步骤把代码打出来把。 但是为什么我们要需要Warshall算法呢?Warshall算法为什么主要按列展开,而不按行展开,不知道大家有没有这种想法? 算法实现: 代码实现: import java.util.Scanner; class Warshall{ private int [][]matrix; public void settMatrix(int[.
2022-05-07 11:18:46 553
原创 java类的初始化
在java中初始化时非常重要的一个问题,借着之前的文章对初始化的顺序进行一个总结: 初始化顺序图: 无论是继承还是组合的关系都是这个顺序 通过下面两个代码验证: class Father{ static String fat.
2022-05-05 11:39:08 3424
原创 构造器是静态方法么?(多个角度分析)
(19条消息) 静态数据的初始化_Chen+7的博客-CSDN博客 这篇文章中我提到过程序会先创建static的两个静态对象,再去调用构造器,如果构造器也是static方法,那程序应该先输出Bowl(1),Table(),Bowl(2),代码可以看上面这篇文章,从这里就可以看出其实构造器不是静态方法。 但是在java编程思想中提到了“即使没有显示地使用static关键字,构造器实际上也是静态方法“。所以我又对此产生了疑问。又从不同的角度去找这个问题的答案。 从java的语言规范中,类中的静态方法和属性
2022-05-05 08:33:08 1047
原创 final关键字的多种用法
(一)final用于修饰类中的属性 带有恒定初始值的final static基本类型全用大写字母命名,并且字与字之间用下划线隔开。 被final修饰的所有属性真的是在编译时就可以知道它的值么?被final修饰的值真的不能被改变么? 可以改变的话,又要怎么样去改变呢?被final static修饰和被final修饰有什么区别?空final又有什么 用处呢?用final修饰引用类型和基本数据类型又有什么不同点? 先看下面的代码,猜猜i4和INT_5的值会不会改变?如果把其中注释掉的代码给解除注释代码还
2022-05-05 08:08:18 1061
原创 代理模式的使用
一.代理模式 代理模式是java常用的设计模式。 代理的定义:为其他对象提供一种代理以控制对这个对象的访问。 简单点说就是代理对象与实际对象都实现了相同的接口,我们可以通过代理对象来间接的访问实际对象,也因为这种间接性,我们可以为代理类添加更多的方法。 二.静态代理 (一)静态代理 静态代理:代理类与被代理类之间的关系在编译时期就已经确定下来 (二)静态代理的简单实现 根据上面的图写一个静态代理的实例:假如小明想要买房,但是他不知道哪里的房比较好,所以要通过房产中介来找房子。 1.
2022-05-04 16:19:00 369
原创 创建子类对象时,java都做了什么?
前两篇文章提到过,在创建对象时java将会对类中的属性进行初始化,那么在创建子类对象时,又会对父类做一些什么呢? 当创建子类对象时: 1.该对象中会包含一个父类的对象,这个对象和你使用父类创建的对象唯一的区别便是一个被放在外部,一个被包装在子类内部。 2.当初始化子类时会先初始化父类没有被初始化过的属性,再调用父类的构造方法,再初始化子类的属性,最后才会调用子类的构造方法,构建的过程是从父类向外扩散的。 class A extends C{ A(){ System.out.
2022-05-04 13:05:37 1022
原创 静态数据的初始化
上篇文章提到在类定义时就会对类中的属性进行初始化,那么假如类中存在静态属性和方法,初始化是否还跟上篇文章所提到的一样呢? 看这篇文章时可以先理解上篇文章的内容:(17条消息) 在类中定义时就被初始化的域与通过构造方法初始化的域有什么区别?_Chen+7的博客-CSDN博客 package Initialize; class Bowl{ Bowl(int marker){ System.out.println("Bowl("+marker+")"); } void
2022-05-02 18:25:46 878
原创 在类中定义时就被初始化的域与通过构造方法初始化的域有什么区别?
看这到这个标题时,可以自己先动手实践一下,再回头来看这篇文章,更容易理解。 初始化涉及编程安全的一个问题,在C++中引入了构造器的概念,这是一个在创建对象时就被自动调用的方法,在java中也采用了构造器。 既然都知道了在创建对象时就会调用类中的构造方法,从而对类中的属性进行初始化,那如果类中已经初始化的属性还会不会进行初始化呢?两者之间的的先后 class A{ String s= "1"; String ss = "2"; String sss; A(){
2022-05-01 15:05:28 994
原创 FilenameFilter
FilenameFile接口主要用于过滤文件名,当我们调用list()方法时可以获得File对象的全部列表,但是当我们想要获得不同的目录列表时就需要使用这个接口去实现,例如我们想要获得全部为.java的文件,那么我们就需要使用目录过滤器来获得符合条件的文件。 两种不同的获取文件的方法 package IO; import java.io.*; import java.util.regex.Pattern; class FileAccept1 implements FilenameFilter{ ..
2022-04-30 21:44:55 1561
原创 Java内部类
内部类基础 在Java中支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。广义上我们将内部类分为四种:成员内部类、静态内部类、局部(方法)内部类、匿名内部类。 //外嵌类 class outer{ //内部类 class Inter{ } } 使用内部类的原因 在java中不能够实现多继承,而内部类具有类的基本特征(既可以继承父类又可以实现接口),这样就可以间接地解决类无法多继承地问题。 public class A extend B imp
2022-04-06 15:30:47 430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人