Java SE
文章平均质量分 75
Java面向对象程序编程
树下一朵云
普本人工智能研究生在读
展开
-
JavaSE知识重构
一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。定义类在局部位置(方法中/代码块):(1)局部内部类(2)匿名内部类定义在成员位置:(1)成员内部类(2)静态内部类。原创 2022-12-04 22:07:32 · 650 阅读 · 0 评论 -
Java集合学习之泛型
3.1 泛型概述在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样一个需求:写一个排序方法,能够对整型数组、字符串数组甚至其他任何原创 2021-04-07 20:15:34 · 214 阅读 · 0 评论 -
Java集合学习之Iterator
2.1 Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器原创 2021-04-07 15:10:37 · 316 阅读 · 0 评论 -
Java集合学习之Collection
1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。 1.2 集合框架JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活.原创 2021-04-07 14:18:34 · 99 阅读 · 0 评论 -
interface关键字的介绍及使用
一、接口的定义与使用格式:(1)接口体中的抽象方法和常量JDK8版本之前,接口体中只有抽象方法,访问权限一定都是public(允许省略public、abstract修饰符)。所有的static常量的访问权限一定都是public(允许省略public、final和static修饰符,接口中不会有变量)(2)接口体中的default实例方法从JDK8版本开始,允许使用default关键字,在接口体中定义称作default的实例方法(不可以定义default的static方法),de...原创 2020-10-11 19:09:01 · 1355 阅读 · 0 评论 -
接口应用:代理模式
接口应用:代理模式package java9;//接口应用:代理模式public class NetWorkTest { public static void main(String[] args) { Server server = new Server(); ProxyServer proxyServer = new ProxyServer(server); proxyServer.browse(); }}interface NetWork{ pu原创 2020-10-11 14:30:24 · 127 阅读 · 0 评论 -
抽象类的应用:模板方法的设计模式
public class TemplateTest { public static void main(String[] args) { Template t = new SubTemplate(); t.spendTime(); }}abstract class Template{ //计算code的执行花费的时间 public void spendTime(){ long start = System.currentTimeMillis(); code(); //易变的.原创 2020-10-10 16:40:32 · 92 阅读 · 0 评论 -
final关键字的介绍及使用
* final:最终的** 1. final可以用来修饰的结构:类、方法、变量** 2. final 用来修饰一个类:此类不能被其他类所继承。* 比如:String类、System类、StringBuffer类** 3. final 用来修饰方法:表明此方法不可以被重写* 比如:Object类中getClass();** 4. final 用来修饰变量:此时的"变量"就称为是一个常量* 4.1 fi...原创 2020-10-10 08:38:56 · 389 阅读 · 0 评论 -
类的成员之代码块(或初始化块)
1. 代码块的作用:用来初始化类、对象* 2. 代码块如果有修饰的话,只能使用static.* 3. 分类:静态代码块 vs 非静态代码块** 4. 静态代码块* >内部可以有输出语句* >随着类的加载而执行,而且只执行一次* >作用:初始化类的信息* >如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行* >静态代码块的执行要优先于非静态代码块的执行* ...原创 2020-10-10 07:49:45 · 144 阅读 · 0 评论 -
static关键字的使用及举例
/** static关键字的使用** 1.static:静态的* 2.static可以用来修饰:属性、方法、代码块、内部类** 3.使用static修饰属性:静态变量(或类变量)* 3.1 属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)* 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的* 非静态属性时,不会导致其他对象...原创 2020-10-08 20:09:45 · 582 阅读 · 0 评论 -
基本数据类型、包装类与String类型的相互转换
//基本数据类型、包装类——》String类型 @Test public void test4(){ int num1 = 100; //方式一:链接运算 String str1 = num1 + ""; System.out.println(str1); //方式二 //调用String重载的valueOf(Xxx xxx) float f1 = 12.3f; String str2 = String.valueOf(f1); System.out.print...原创 2020-10-08 11:19:02 · 103 阅读 · 0 评论 -
JDK 5.0 新特性 自动装箱与自动拆箱
/* * JDK 5.0 新特性 自动装箱与自动拆箱 * */ @Test public void test3(){ //int num1 = 11; //基本数据类——》包装类对象 //method(num1); //自动装箱 int num2 = 10; Integer in1 = num2; //自动拆箱 //包装类——》基本数据类型 System.out.println(in1.toString()); int num3 = i.原创 2020-10-08 10:51:26 · 117 阅读 · 0 评论 -
包装类与基本数据类型的相互转换
package java4;import org.junit.Test;/* * 包装类的使用 * */public class WrapperTest { //基本数据类型转换为对应的包装类 //调用包装类的构造器 @Test public void test1(){ int num1 = 10; Integer in1 = new Integer(num1); System.out.println(in1.toString()); Integer in2 .原创 2020-10-08 10:42:08 · 914 阅读 · 0 评论 -
javaSE基础项目实战一 —— 家庭记账软件
javaSE基础项目实战一 —— 家庭记账软件目标需求说明模拟实现基于文本界面的 家庭记账软件 该软件能够记录家庭的收入、支出,并能打印收支细表 项目采用分级菜单方式。主菜单如下:流程图——主流程流程图——收入和支出处理流程键盘访问的实现step1——实现主程序结构step2——实现收入和支出登记处理import java.util.Scanner;/**Utility工具类:将不同的功能封装为方法,就是可原创 2020-10-07 15:43:41 · 1346 阅读 · 0 评论 -
Java中abstract类和abstract方法
用关键字abstract修饰的类称为abstract类(抽象类)。如:abstract class A { abstract int min(int x,int y);}用关键字abstract修饰的方法称为abstract方法(抽象方法),对于abstract方法,只允许声明,不允许实现,而且不允许使用final和abstract同时修饰一个方法,例如:abstract int min(int x,int y);理解abstract类(1)抽象类可以抽象出...原创 2020-09-20 14:52:20 · 5241 阅读 · 1 评论 -
Java中继承与多态的理解
多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。当一个类有很多子类时,并且这些子类都重写了父类中的某个方法。那么当我们把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,这个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。原创 2020-09-20 13:20:25 · 604 阅读 · 0 评论 -
Java中为什么使用向上转型而不直接创建子类对象?
定义父类 Animal,代码如下:public class Animal { public void sleep() { System.out.println("小动物在睡觉"); } public static void doSleep(Animal animal) { // 此时的参数是父类对象,但是实际调用时传递的是子类对象,就是向上转型。 animal.sleep(); } public static原创 2020-09-20 11:05:55 · 1658 阅读 · 0 评论 -
Java对象的上转型对象与下转型
将一个类型强制转换成另一个类型的过程被称为类型转换。本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,会抛出Java强制类型转换(java.lang.ClassCastException)异常。假设,A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如:A a;a = new B();或A a;B b = new B();a = b;上转型对象这时,称对象a是对象b的上转型对象....原创 2020-09-20 10:38:59 · 1425 阅读 · 0 评论 -
Java中super关键字介绍
由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。super 关键字的功能:在子类的构造方法中显式的调用父类构造方法 访问父类的成员方法和变量。1、使用super调用父类的构造方法super必须是子类构造方法中头一条语句...原创 2020-09-18 23:09:08 · 2773 阅读 · 0 评论 -
Java Arrays基本工具类
Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。int binarySearch(type[] a, type key)使用二分法查询 key 元素值在 a 数组中出现的索引,如果 a 数组不包含 key 元素值,则返回负数。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。int binaryS原创 2020-09-16 22:59:20 · 153 阅读 · 0 评论 -
Java不规则数组简述
如下代码静态初始化了一个不规则数组。int intArray[][] = {{1,2}, {11}, {21,22,23}, {31,32,33}};动态初始化不规则数组比较麻烦,不能使用 new int[4][3] 语句,而是先初始化高维数组,然后再分别逐个初始化低维数组。代码如下:int intArray[][] = new int[4][]; //先初始化高维数组为4// 逐一初始化低维数组intArray[0] = new int[2];intArray[1] = new.原创 2020-09-16 20:08:54 · 392 阅读 · 0 评论 -
Java二维数组基础
获取全部元素在一维数组中直接使用数组的 length 属性获取数组元素的个数。而在二维数组中,直接使用 length 属性获取的是数组的行数,在指定的索引后加上 length(如 array[0].length)表示的是该行拥有多少个元素,即列数。如果要获取二维数组中的全部元素,最简单、最常用的办法就是使用 for 语句。在一维数组全部输出时,我们使用一层 for 循环,而二维数组要想全部输出,则使用嵌套 for 循环(2 层 for 循环)。class test07 { public st原创 2020-09-16 19:32:19 · 154 阅读 · 0 评论 -
从命令行输入与输出数据
1.输入基本数据类型Scanner在java.util包中,可以使用该类创建一个对象。Scanner reader = new Scanner(System.in);然后reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:nextBoolean();nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()。reader对象用空白做分隔标记读取用户在命令行输入的数据。上述方法执行时读取数原创 2020-09-15 20:50:47 · 947 阅读 · 0 评论 -
第二章 基本数据类型、数组、枚举类型
2.1 标识符和关键字2.1.1 标识符标识符的语法规则:标识符由字母、下划线、美元符号和数字组成,长度不受限制。 标识符的第一个字符不能是数字字符。 标识符不能是关键字 标识符不能是true、false和null(尽管true、false和null不是Java关键字)例如,以下都是标识符: Hello_java、Hello_12$、$23Boy。需要特别注意的是,标识符中的字母是区分大小写的,hello和Hello是不同的标识符。2.1.2 关键字J...原创 2020-09-15 20:27:01 · 459 阅读 · 0 评论