
【Java】
文章平均质量分 52
Root_Smile
这个作者很懒,什么都没留下…
展开
-
【Java】接口
当一个非抽象的类实现接口的话,必须将接口中所有的抽象方法全部实现(覆盖、重写)继承和实现都存在的话,extends关键字在前,implements关键字在后。在这里我们只说一下两者在语法上的区别,至于以后应该怎样选择,通过项目去体会。接口是完全抽象的(抽象类是半抽象),也可以说接口是特殊的抽象类。接口是一种引用数据类型,编译之后是一个class字节码文件。接口支持多继承,一个接口可以继承多个接口。可以使用多态(父类型引用指向子类型对象)一个类可以同时实现多个接口。原创 2024-05-18 16:47:48 · 390 阅读 · 0 评论 -
【Java】抽象类
而非面向具体编程,这样能降低程序的耦合度,提高程序的扩展力。一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现(覆盖、重写)了,否则编译错误。抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。类本身是不存在的,所以抽象类无法创建对象(无法实例化)抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。:表示没有实现的方法,没有方法体的方法。类到对象是实例化,对象到类是抽象。抽象类的子类可以是抽象类。原创 2024-05-18 11:16:45 · 217 阅读 · 0 评论 -
【Java】super关键字
super(实参)的作用是:初始化当前对象的父类型特征。不管是new什么对象,最后老祖宗的Object类的无参数构造方法一定会执行(处于"栈顶部")this()和super()不能共存,它们都是只能出现在构造方法第一行。父中有,子中又有,如果想在子中访问“父的特征”,super.不能省略。super代表的是"当前对象(this)“的"父类型特征”super()表示通过子类的构造方法调用父类的构造方法。表示通过当前子类的构造方法调用父类的无参数构造方法。目的是:创建子类对象的时候,先初始化父类型特征。原创 2024-05-18 10:55:29 · 448 阅读 · 0 评论 -
【Java】访问控制权限修饰符
类只能采用public和缺省的修饰符进行修饰(内部类除外)当某个数据只希望子类使用,使用protected进行修饰。使用它来控制元素的访问范围。它可以修饰类、变量、方法。原创 2024-05-17 20:52:14 · 177 阅读 · 0 评论 -
【Java】包 package
包又称为package,java中引入package这种语法机制主要是为了方便程序的管理。不同功能的类被分门别类放到不同的软件包当中,查找和管理比较方便,也易于维护。不是java.lang包下,或者不在同一个包下的时候,需要使用import进行引入:import + 包名。包名要求全部小写,包名也是标识符,必须遵循标识符的命名规则。手动方式创建目录,且类名需要写全称(前面加上包名),也可以。将F:\Hello.java文件编译之后放到C:目录下。一个包对应的是一个目录(目录之间用"."隔开)原创 2024-05-17 18:22:39 · 210 阅读 · 0 评论 -
【Java】final关键字
以上的两种方式其实本质是一种,都是在构造方法执行过程中给实例变量赋值。java规范中要求所有常量的名字全部大写,每个单词之间使用下划线连接。原创 2024-05-17 17:51:53 · 346 阅读 · 0 评论 -
【Java】多态
编译虽然通过了,但是程序在运行阶段会出现异常,因为JVM堆内存当中真实存在的对象是Bird类型,Bird对象无法转换成Cat对象,因为两种类型之间不存在任何继承关系,此时会出现异常——在程序运行阶段,JVM堆内存当中真实创建的对象是Cat对象,那么以下程序在运行阶段一定会调用Cat对象的move()方法,此时发生了程序的动态绑定(运行阶段绑定)无论Cat类是否重写move方法,运行阶段一定调用的是Cat对象的move方法,因为底层真实对象就是Cat对象。没有继承关系,程序是无法编译通过的。原创 2024-05-17 16:13:18 · 424 阅读 · 0 评论 -
【Java】方法重写/方法覆盖 overwrite/override
对于返回值类型的要求,java 5或者以前,必须一样;java 7 java 8可以不同,但是必须是父类返回值的派生类。里子类可以对继承的属性进行更改,那继承的方法呢,也能更改吗?方法重写发生在具有继承关系的父子类之间。原创 2024-05-17 11:27:49 · 368 阅读 · 0 评论 -
【Java】继承
注意,这里我们说"私有的不支持继承",还有一种说法是"私有的可以被继承,但不能被使用",一个类不能同时继承很多类,只能继承一个类。(在C++中支持多继承)也就是说,子类在继承父类的属性和方法的同时,可以有自己的属性和方法。java语言中任何一个类中都有Object类的特征。建议先记下,等学完super关键字之后再去理解。那么父类的所有数据都能被子类继承吗?C直接继承B类,间接继承A类。java语言中的继承只支持。原创 2024-05-17 09:48:02 · 375 阅读 · 0 评论 -
【Java】子类到底能不能继承父类的私有属性?
最后关于Java中子类能否继承父类的私有变量和方法?当然是以 Java 官方文档解释说明为准,这里我们明确一下“继承”一词的概念,在 Java 中,继承一词的意义是有限制的。一个子类只能继承其父类可访问的成员,并且该子类没有覆盖或者说隐藏父类中的那些可访问成员。所以,一个类的成员就是指在这个类中所声明的属性和方法,再加上从其父类继承而来的属性和方法。也就是说,子类是不能继承父类的私有成员的。虽然子类不继承父类中的私有成员,但是在父类中的这些私有成员仍然是子类对象的一部分。转载 2024-05-17 08:22:45 · 1840 阅读 · 0 评论 -
【Java】static关键字
方法描述的是动作,当所有的对象执行这个动作的时候,最终产生的影响是一样的,那么这个动作已经不再属于某一个对象动作了,可以将这个动作提升为类级别的动作,模板级别的动作。:某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享,可以使用"类名.变量名"的形式来访问,当然也可以先实例化对象再用"对象.变量名"访问。static修饰的所有元素都称为静态的,都可以使用"类名."的方式访问,当然也可以用"引用."的方式访问(但不建议)static修饰的所有元素都是类级别的特征,和具体的对象无关。原创 2024-05-16 21:07:36 · 829 阅读 · 0 评论 -
【Java】实例代码块
【代码】【Java】实例代码块。原创 2024-05-16 20:55:32 · 203 阅读 · 0 评论 -
【Java】什么时候程序在运行的时候会出现空指针异常呢?
空引用访问实例相关的数据时,因为实例相关的数据就是对象相关的数据。这些数据在访问的时候必须有对象的参与;当空引用的时候,对象不存在,访问这些实例数据一定会出现空指针异常。带有static的方法,其实既可以采用类名的方式访问,也可以采用引用的方式访问。但是即使采用引用的方式去访问,实际上执行的时候和引用指向的对象无关。原创 2024-05-16 16:40:58 · 294 阅读 · 0 评论 -
【Java】this关键字
而static的方法中是没有this的,也就是说当前对象是不存在的,自然也是无法访问当前对象的实例变量和实例方法。在带有static的方法当中不能"直接"访问实例变量和实例方法,因为实例变量和实例方法都需要对象的存在。2.可以用在构造方法中,通过当前的构造方法调用其他的构造方法。time1调用无参构造,time2调用有参构造。,通过this可以调用本对象的所有方法和属性。在普通成员方法中使用this调用另一个成员方法。1.可以用在实例方法中,代表当前对象。下面我们来对无参构造进行优化。原创 2024-05-16 16:12:21 · 348 阅读 · 0 评论 -
【Java】构造方法(构造器) Constructor
当一个类显式地将构造方法定义出来了,那么系统则不再默认为这个类提供缺省构造器。对于构造方法来说,"返回值类型"不需要指定,并且也不能写void,只要写上void,那么这个方法就成为普通方法了。不是,因为类加载的时候只加载了代码片段,还没来得及创建对象,所以此时实例变量并没有初始化。成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。每一个构造方法实际上执行结束之后都有返回的值,但是这样的语句不需要写。是在类加载的时候吗?系统在默认赋值的时候,也是在构造方法执行过程中完成的赋值。原创 2024-05-16 14:23:47 · 414 阅读 · 0 评论 -
【Java】封装
以上代码就实现了封装,成员变量私有化之后,新建对象不能直接访问属性,而是应调用get方法获取属性,set方法更改属性。修改属性,调用set方法;读取属性,调用get方法。调用:引用.方法名(实参)private关键字修饰的数据只能在本类中访问。原创 2024-05-16 11:19:28 · 198 阅读 · 0 评论 -
【Java】引用
变量的实质是一小块内存单元,这一小块内存里存储着变量的值而当变量指向一个对象时,这个变量就被称为引用变量引用数据类型为java两大数据类型之一(另一个是基本数据类型)引用数据类型包括:类,接口类型,数组类型,枚举类型,注解类型,字符串型引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。引用可能是局部变量,也可能是成员变量只有一个空的引用,访问对象的实例相关的数据出现空指针异常。原创 2024-05-13 16:00:58 · 551 阅读 · 0 评论 -
【Java】变量类型
【代码】【Java】变量类型。原创 2024-05-12 17:13:59 · 178 阅读 · 0 评论 -
【Java】内存区域
简单了解,以后会详细补充。原创 2024-05-12 16:00:25 · 180 阅读 · 0 评论 -
【Java】类和对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。类是描述某一对象的统称,对象是这个类的一个实例而已。有类之后就能根据这个类来产生具体的对象。类:把具有相同属性和行为的一类对象抽象为类。对象:某个类的一个实体,当有了对象后,这些属性便有了属性值,行为也就有了相应的意义。原创 2024-05-12 15:07:23 · 244 阅读 · 0 评论 -
【Java】方法重载(overload)
在同一个类中,方法名相同,参数列表不同(数量不同、顺序不同、类型不同)什么条件满足之后构成了方法重载?原创 2024-05-12 10:35:59 · 439 阅读 · 0 评论 -
【Java】入门
笔者是在C语言基础上学习java安装Java的过程中我们可能会见到这样几个东西,JVM、JRE、JDK,那它们的关系是怎样的呢?-JVMJava Virtual Machine 是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。-JREJava Runtime Environment 包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、原创 2024-05-12 10:18:20 · 383 阅读 · 0 评论