Java学习
学习记录
halisi7
这个作者很懒,什么都没留下…
展开
-
Java-面向对象2-方法的重写与权限修饰符
方法的重写(override / overwrite)1.重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作2.应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。3重写的规定: 方法的声明: 权限修饰符 返回值类型 方法名(形参列表) throws 异常的类型{ //方法体 } 约定俗称:子类中的叫重写的方法,父类中的叫被重写的方法 ① 子类重写的方法的方法名和形参列表与父类被重写的方法的方原创 2022-01-19 11:02:13 · 222 阅读 · 0 评论 -
Java-面向对象2-向下转型
多态的补充:有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。如何才能调用子类特有的属性和方法? //向下转型:使用强制类型转换符。多态是运行时行为。类型转换:强制转换出现的问题://使用强转时,可能出现ClassCastException的异常。// Person p2 = new Man();// Woman w1 = (Woman)p2;原创 2022-01-19 11:00:48 · 284 阅读 · 0 评论 -
Java-面向对象2-多态
面向对象特征之三:多态性1.理解多态性:可以理解为一个事物的多种形态。2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)3.多态的使用:虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译,看左边;运行,看右边。4.多态性的使用前提: ① 类的继承关系 ② 方法的重写5.对象的多态性,只适用于方法,不适用于属性(编译和运行都看左边)Demo:public class P原创 2022-01-19 10:59:31 · 84 阅读 · 0 评论 -
Java-面向对象2-super关键字
super关键字的使用1.super理解为:父类的2.super可以用来调用:属性、方法、构造器3.super的使用:调用属性和方法3.1 我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super."3.2 特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用"super.属性"的方式,表明调用的是父类中声明的属性。3.3 特殊情况:当子原创 2022-01-19 10:58:37 · 112 阅读 · 0 评论 -
Java-面向对象2-Debug调试
如何调试程序:System.out.println().Eclipse - Debug调试Debug操作:1.设置断点——在这行代码的前面双击。2.选择Debug调试。3.常用操作:step into失灵解决方案:1.进入Debug配置。2.改为jdk中的jre即可。...原创 2022-01-17 15:54:15 · 185 阅读 · 0 评论 -
Java-面向对象2-继承性
面向对象的特征之二:继承性 why?一、继承性的好处:① 减少了代码的冗余,提高了代码的复用性② 便于功能的扩展③ 为之后多态性的使用,提供了前提二、继承性的格式: class A extends B{} A:子类、派生类、subclass B:父类、超类、基类、superclass2.1体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。 特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取原创 2022-01-17 15:53:35 · 75 阅读 · 0 评论 -
Java-Eclipse快捷键
Eclipse中的快捷键:1.补全代码的声明:alt + /2.快速修复: ctrl + 13.批量导包:ctrl + shift + o4.使用单行注释:ctrl + /5.使用多行注释: ctrl + shift + /6.取消多行注释:ctrl + shift + 7.复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up8.删除指定行的代码:ctrl + d9.上下移动代码:alt + up 或 alt + down10.切换到下一行代码空位:原创 2022-01-16 16:43:42 · 308 阅读 · 0 评论 -
Java-面向对象1-构造器
类的结构之三:构造器(或构造方法、constructor)的使用construct:建设、建造。 construction:CCB constructor:建设者一、构造器二、说明:1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器2.定义构造器的格式:权限修饰符 类名(形参列表){}3.一个类中定义的多个构造器,彼此构成重载4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器5.一个类中,至少会有一个构造器。Demo:public cla原创 2022-01-15 13:32:46 · 77 阅读 · 0 评论 -
Java-面向对象1-封装性
面向对象特征之封装性:一、问题的引入:当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要**给属性赋值加入额外的限制条件。**这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs())同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).–>此时,针对于属性就原创 2022-01-14 18:11:47 · 58 阅读 · 0 评论 -
Java-面向对象1-递归
递归方法的使用(了解)递归方法:一个方法体内调用它自身。方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。Demo:public class RecursionTest { public static void main(String[] args) { // 例1:计算1-100之间所有自然数的和 // 方式一: int sum = 0; for (int i =原创 2022-01-13 16:53:48 · 95 阅读 · 0 评论 -
Java-面向对象1-值传递机制
复习:关于变量的赋值:如果变量是基本数据类型,此时赋值的是变量所保存的数据值。如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。方法的形参的传递机制:值传递1.形参:方法定义时,声明的小括号内的参数实参:方法调用时,实际传递给形参的数据2.值传递机制:如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。Demo:Demo2:Demo3:重置输出流。Demo4:Demo5原创 2022-01-13 16:53:20 · 110 阅读 · 0 评论 -
Java-面向对象1-方法的重载
方法的重载(overload) loading…定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。"两同一不同":同一个类、相同方法名参数列表不同:参数个数不同,参数类型不同举例:Arrays类中重载的sort() / binarySearch()判断是否是重载:跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!在通过对象调用方法时,如何确定某一个指定的方法:方法名 —> 参数列表Demo1:public c原创 2022-01-13 16:52:33 · 61 阅读 · 0 评论 -
Java-面向对象1-可变个数形参
可变个数形参的方法:1.jdk 5.0新增的内容2.具体使用: 2.1 可变个数形参的格式:数据类型 … 变量名 2.2 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。 2.3 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载 2.4 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。 2.5 可变个数形参在方法的形参中,必须声明在末尾 2.6 可变个原创 2022-01-13 16:51:43 · 85 阅读 · 0 评论 -
Java-面向对像1-test2
问题:对象数组题目:定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。问题一:打印出3年级(state值为3)的学生信息。问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息提示:生成随机数:Math.random(),返回值类型double;四舍五入取整:Math.round(double d),返回值类型long。代码部分:public class原创 2022-01-12 14:00:42 · 50 阅读 · 0 评论 -
Eclipse查看java类库源码
1.在代码中,ctrl+左键点击指定结构后出现以下页面。2.点击Attach,然后导入文件或文件夹3.例如以文件的形式直接导入jdk安装位置的src.zip即可。怎么看jdk的安装位置?在命令行输入 java -verbose 找到最后一行即可。...原创 2022-01-12 13:59:43 · 406 阅读 · 0 评论 -
Java-面向对象1-test
步骤(三步走):创建类创建类的对象调用类Test1:利用面向对象的编程方法,设计类Circle计算圆的面积。代码实现:public class CircleTest { public static void main(String[] args) { //创建对象 Circle m =new Circle(); m.r=2.1; double t=m.Area(); System.out.println(t); }}//创建类class Circle {原创 2022-01-11 16:31:26 · 122 阅读 · 0 评论 -
Java-面向对象1.2
类中方法的声明和使用什么是方法? 方法:描述类应该具有的功能。比如: Math类:sqrt()\random() \... Scanner类:nextXxx() ... Arrays类:sort() \ binarySearch() \ toString() \ equals() \ ...1.举例: public void eat(){} public void sleep(int hour){} public String getName(){} pub原创 2022-01-11 16:30:13 · 39 阅读 · 0 评论 -
Java-面向对象1.1
类中属性的使用属性(成员变量) vs 局部变量1.相同点: 1.1 定义变量的格式:数据类型 变量名 = 变量值 1.2 先声明,后使用 1.3 变量都有其对应的作用域2.不同点:2.1 在类中声明的位置的不同属性:直接定义在类的一对{}内局部变量:声明在方法内、方法形参、代码块内、构造器形参、构 造器内部的变量。2.2 关于权限修饰符的不同 属性:可以在声明属性时,指明其权限,使用权限修饰符。常用的权限修饰符:private、public、原创 2022-01-11 16:28:18 · 46 阅读 · 0 评论 -
Java-面向对象1
Java面向对象学习的三条主线:1.Java类及类的成员:属性、方法、构造器;代码块、内部类2.面向对象的三大特征:封装性、继承性、多态性、(抽象性)3.其它关键字:this、super、static、final、abstract、interface、package、import等面向对象的两个要素:类:对一类事物的描述,是抽象的、概念上的定义。对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)面向对象程序设计的重点是类的设计设计类,就是设计类的成员。一个类的完整原创 2022-01-11 13:53:19 · 45 阅读 · 0 评论 -
Java数组的常见异常
Java数组中的常见异常类型:数组角标越界的异常:ArrayIndexOutOfBoundsExcetion空指针异常:NullPointerExceptionDemo:public class ArrayExceptionTest { public static void main(String[] args) { //1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion int[] arr = new int[]{1,2,3,4,5};原创 2022-01-10 16:19:35 · 268 阅读 · 0 评论 -
Java的工具类—Arrays
Arrays工具类的说明:提供了操作数组的方法。一般一个类加s就是操纵某个东西的工具类了。常用的工具类使用工具类的前提导包import java.util.Arrays;Demo:import java.util.Arrays;public class ArraysTest { public static void main(String[] args) { //1.boolean equals(int[] a,int[] b):判断两个数组是否相等。 int原创 2022-01-10 16:18:51 · 57 阅读 · 0 评论 -
冒泡排序—Java
说明:冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是说要进行 n-1 趟操作(数组角标从0开始)。第 i 趟比较只需要比较 n-i -1次(数组角标从0开始)。代码部分:public class BubbleSort { public static void main(String[] args) { //声明并初始化数组 int[] arr=new int[] {43,34,24,64,1原创 2022-01-10 13:01:32 · 198 阅读 · 0 评论 -
Java数组元素的查找
数组元素查找的两种方法:线性查找。二分法查找。二分法查找说明图:代码部分:public class ArrayTest2 { public static void main(String[] args) { String[] arr = new String[]{"JJ","DD","MM","BB","GG","AA"}; //数组的复制(区别于数组变量的赋值:arr1 = arr) String[] arr1 = new String[arr.leng原创 2022-01-09 15:51:52 · 2909 阅读 · 0 评论 -
Java数组的复制与反转
说明:数组的复制 != 赋值。反转数组元素的两种方法。代码部分:public class ArrayTest2 { public static void main(String[] args) { String[] arr = new String[]{"JJ","DD","MM","BB","GG","AA"}; //数组的复制(区别于数组变量的赋值:arr1 = arr) String[] arr1 = new String[arr.length];原创 2022-01-09 15:51:19 · 168 阅读 · 0 评论 -
Java数组之数组计算
题目:求数值型数组中元素的最大值、最小值、平均数、总和等定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。要求:所有随机数都是两位数。分析:两位数即为 [10,99]10~99随机数代码:(int)(Math.random() * (99 - 10 + 1) + 10);代码实现:public class ShuoZuYunSuan { public static void main(String[]原创 2022-01-09 15:50:45 · 952 阅读 · 0 评论 -
Java数组之杨辉三角
使用二维数组打印一个 10 行杨辉三角。【提示】第一行有 1 个元素, 第 n 行有 n 个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即: yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];代码实现:public class YangHuiTest {// 这里要首字母大写 public static void main(String[] args) {// 二原创 2022-01-09 15:50:04 · 177 阅读 · 0 评论 -
Java数组
1.一维数组。1.1 数组的概述数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。1.2 数组相关的概念:数组名元素角标、下标、索引数组的长度:元素的个数1.3 数组的特点:1)数组是有序排列的2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型, 也可以是引用数据类型3)创建数组对象会在内存中开辟一整块连续的空间4)数组的长度一旦确定,就不能修改。1.4 数组的分类原创 2022-01-08 16:49:16 · 31 阅读 · 0 评论 -
Eclipse修改注释
找到位置。2.修改即可。原创 2022-01-06 18:02:30 · 209 阅读 · 0 评论 -
Eclipse设置
设置编码 UTF-82.设置透视图 Java EE 如果没有透视图:看这里:https://blog.csdn.net/qq_42912469/article/details/1223481623.设置左边和下边。设置NEW。5.保存透视图。6.开始使用。原创 2022-01-06 17:43:40 · 279 阅读 · 0 评论 -
Eclipse没有JavaEE透视图
解决方法:打开Eclipse,点击help点击Install New…选择work with…勾选Web,XML等5.一路next。6.等待Ecplise右下角安装完成,然后重启Ecplise。安装卡住怎么办:科学上网,然后重试。原创 2022-01-06 17:02:42 · 559 阅读 · 0 评论 -
Eclipse-快捷键
原创 2022-01-05 15:19:45 · 224 阅读 · 0 评论