自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 (Java)字符串类--String类详解

返回值boolean类型。

2025-08-01 22:07:05 660

原创 (Java)接口--Comparable&Comparator

还是刚刚的学生类,但此时我们不让用Student去实现接口,而是再创建一个ScoreCmp和NameCmpl类分别实现Comparator接口,在类里面重写compare方法时可以直接使用前面说的compareTo方法。于是需要用接口来指定以什么样的方式进行比较(在接口中提供比较方法,实现类重写接口中的抽象方法)。比较学生的成绩:让Student类实现Comparable接口,并实现其中的comparTo方法。该接口就像一个比较器,想要比较什么属性就创建一个"属性比较类"实现Comparator接口。

2025-07-30 13:42:04 123

原创 JAVA抽象类和接口

修饰(抽象方法),且。

2025-07-30 09:18:27 791

原创 (Java)多态--练习题(选择)

A.输出:Person B.没有输出 C.编译出错 D.运行出错。子类继承父类之后,会继承父类私有的数据,但是由于private访问修饰符的问题,子类没有办法直接访问该数据(name只能在当前类中使用)本题主要考察继承和访问修饰限定符private。1.以下代码运行输出的是()

2025-07-20 08:51:39 178

原创 (Java)多态 详解

多态的概念简单来说,去完成某个⾏为,当不同的对象去完成时会产⽣出不同的状态。比如:猫和狗都是动物,除了都有姓名,年龄这种共有的属性外,还有同类的行为--吃饭。但猫是吃猫粮,狗是吃狗粮,如果给它们俩分别定义一个类中包含属性和方法的话,我们会发现姓名年龄属性重复定义,这时候就需要通过多态实现来简化代码。多态体现:在代码运⾏时,当传递不同类对象时,会调⽤对应类中的⽅法。即:同一个引用调用同一个方法,但这个引用 引用的对象不一样时,调用方法产生的结果也不同。

2025-07-20 08:47:05 574

原创 (Java)4种访问修饰限定符

在类和对象章节中,为了实现封装特性,Java中引⼊了访问限定符。主要限定:类或者类中成员能否在类外或者其他包中被访问。private关键字修饰的成员变量/方法只能在当前类中访问在其它类中只能通过公开的接⼝来进⾏访问(详见注意:private可以修饰内部类,不可以修饰外部类。

2025-07-19 12:48:29 294

原创 (Java)继承详解

(inheritance):是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许程序员在保持原有类特性的基础上进⾏扩展,增加新功能,这样产⽣新的类,称派⽣类。通过子类对象访问⽗类与⼦类同名⽅法时,如果⽗类和⼦类同名⽅法的参数列表不同(重载),根据调⽤⽅法适传递的参数选择合适的⽅法访问,如果没有则报错;在构造⼦类对象时,要先调⽤父类构造⽅法,然后执⾏⼦类构造⽅法(如果都没有的情况下,会默认有一个无参构造方法)。如果访问的成员变量⼦类中⽆,则访问⽗类继承下来的,如果⽗类也没有定义,则编译报错。

2025-07-19 12:01:34 842

原创 (Java)--继承练习题(选择)

通过super.data就能知道访问的是父类的data(子类只是包含了父类的成员和方法 但这些不是在子类中 只是通过super能让子类访问父类的成员变量和方法,所以说。故最终的结果是YXYZ。在继承层次上,先执行父类和子类的静态的,再执行父类的实例,父类的构造,最后执行子类的实例和子类的构造。主要疑问就是注释3处,此时A虽然不是C的直接父类,但是C依然间接继承了A的内容的,此时可以发生。B.super关键字不仅可以指代子类的直接父类,还可以直接指代父类的父类。D.第1行,第2行和第3行的声明都是正确的。

2025-07-17 21:06:39 295

原创 类和对象习题(选择)

在执行println函数的时候,会调用Object类的toString方法,此时当我们自己类重新通过编译器实现了toString方法之后,会调用我们自己写的方法。根据上面所述,调用我们自己写的toString方法后,执行输出语句,输出aaa,返回bbb交给println函数,输出bbb。B:n是静态的,需要通过类名访问,不能通过this访问,this代表当前对象的引用,但是静态的成员变量不属于this。随着类的加载而被创建,而局部变量是调用该方法的时候,才创建的。所以,此时两种变量的性质是冲突的。

2025-07-17 00:45:53 582

原创 (Java)static关键字详解

静态⽅法中不能调⽤任何⾮静态⽅法,因为⾮静态⽅法有this参数,在静态⽅法中调⽤时候⽆法传递this引⽤。在Student类中定义的成员变量,每个对象中都会包含⼀份(称之为实例变量)。教室的属性并不会在每个学⽣对象中都存储⼀份,而是被放到了方法区,同时这个成员变量。但这个教室的属性并不需要每个学⽣对象中都存储⼀份,⽽是需要让所有的学⽣来共享。不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中。,是类的⽅法,不是某个对象所特有的。,其不属于某个具体的对象,是所有对象所。

2025-07-16 23:57:12 257

原创 (Java)封装

封装可以降低对象和对象之间的耦合度,当对象内部发⽣变化时,只需要修改对象内部即可,不会影响到外部程序,因为公开的接⼝是不会发⽣改变的。封装可以隐藏对象的具体实现细节,阻⽌外部程序直接访问对象的内部状态,从⽽保护数据不被意外修改或破坏。指的是将数据(属性)和操作这些数据的⽅法(函数)包装在⼀个单元(通常是类)内。封装是隐藏了对象内部的实现细节,只提供了公开的接⼝给外部,使⽤起来更加简单。隐藏对象的属性和实现细节,仅对外公开接⼝来和对。⽽类和对象阶段,主要研究的就是封装特。只能在当前类中访问,

2025-07-16 23:15:08 164

原创 (Java)包 详解

在⽂件的最上⽅加上⼀个 package 语句指定该代码在哪个包中(IDEA编译器也会自动给出)如果我们在定⼀个类的时候,没有指定成员变量/成员⽅法的访问权限,此时。此时可以看到我们的磁盘上的⽬录结构已经被 IDEA ⾃动创建出来了。中的其他类, 可以使⽤ import java.util.*(包名尽量指定成唯⼀的名字, 通常⽤公司的域名的颠倒形式(例如。包---类似 文件夹,每个文件夹中存放不同的 类。Java 中已经提供了很多现成的类供我们使⽤.机制的体现,是一种对类或接口等的很好的组织方式。

2025-07-16 22:50:31 778

原创 数组练习(java)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。eg:1^2^1^2^3=1^1^2^2^3=0^0^0^3=3 则3就是只出现一次的数字。找出那个只出现了一次的元素。数字是连续出现的,所以我们只需要定义一个计数器,如果连续出现的次数超过3,则返回true。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:arr = [1,2,34,3,4,5,7,23,12]

2025-07-15 16:22:16 516

原创 汉诺塔问题

当A上有3个盘子:A->C , A->B , C->B , A->C , B->A , B->C , A->C 移动7次(如图)即先将A上的n-1个圆盘借助C移到B上,再把A剩的最后一个圆盘移到C上(移动底盘)当A上有2个盘子:A->B , A->C , B->C 移动3次。初始状态 pos1(A),pos2(B),pos3(C)此时pos1(A),pos2(C),pos3(B)此时pos1(B),pos2(A),pos3(C)先将B上的n-1个圆盘借助A移到C上,结束。创造世界的时候做了三根。

2025-07-11 23:13:47 325

原创 斐波那契数列(Java)

而计算fib(3)需要计算fib(2)fib(1)......最终为了得到fib(5)的结果,fib(2)被计算了3次,fib(1)被计算了5次,fib(3)被计算了2次。在数学上,斐波那契数列被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。结束条件则是n==1||n==2时,返回1。简单来说,斐波那契数列定义为:1,1,2,3,5,8,13,21...... 我们可以看到,从第3项开始,每一项都等于前一项+前一项的前一项的和。

2025-07-10 16:24:21 295

原创 递归问题--数字的每一位

假设用F(n) 代表 要顺序打印n的每一位,如果n是一个1位数,直接输出,如果n是2位数以上则返回n%10+add(n/10)。如下图,在执行n=123的时候,先执行add(123/10)也就是add(12)这个函数,等最后回来之后,才会把n=123时候的n%10算完。假设用F(n) 代表 要顺序打印n的每一位,如果n是一个1位数,直接输出,如果n是2位数以上则不断除10直到是n一位数再模10即可输出。按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)一.打印数字的每一位。

2025-07-10 15:58:20 267

原创 求2个整数的最大公约数

因此从从min(m,n)开始向下寻找最大公约数i,若i能被m和n同时整除则找到了,break跳出循环。= 0,则进行辗转交换。当a可以被b整除时 (a%b == 0),直接返回 b , b就是最大公约数。第一次:a = 18 b = 24 c = a%b = 18%24 = 18。第二次:a = 24 b = 18 c = a%b = 24%18 = 6。第三次:a = 18 b = 6 c=a%b = 18%6 = 0。循环中:a = 18 b = 6。循环中:a = 24 b=18。

2025-07-10 15:03:03 124

原创 判断水仙花数

(Armstrong number),水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。3. 求和完成后检测其结果是否与data相等即可(注意临时变量的使用,否则step2会修改data)2. 获取data中每个位置上的数据(当data!==0时,不断地%10再/10循环)==0时,不断地/10计数)思路:一个 n 位数,它的每个数位上的数字的 n次幂之和等于它本身。三位自幂数(水仙花数):153,370,371,407;并对其进行n次方方求和(Math.pow())

2025-07-08 08:20:05 291

原创 素数的判定

一个素数n只能整除1和n本身,因此我们很容易想到:遍历所有大于1且小于n的整除,判断n是否能被这些数整除。即创建一个2-n-1的循环,每进入一次循环就判断是否存在可以整除的数,若存在则跳出循环;一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;我们发现,一个数n=a*b,那么a或b都不可能大于n/2,此时上文中范围从n-2缩小到了n/2。这样方法简单易懂,但时间复杂度为 O ( n ) ,需要判断大量的数时十分缓慢。) (Java中求根号: Math.sqrt(n))

2025-07-08 07:46:18 272

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除