![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面向对象
ll123c
这个作者很懒,什么都没留下…
展开
-
方法重载
方法重载是指在同一个类中的方法,方法名必须相同,方法参数列表可以不同。返回值类型不在我的考虑范围之内。可以相同,也可以不同 上图中的方法除了最后一个,其它的均为重载的方法。...原创 2019-01-10 21:08:37 · 182 阅读 · 0 评论 -
抽象方法与抽象类的对比
1.含有抽象方法的类一定是抽象类,抽象类不一定含有抽象方法2.由于抽象方法会被子类重写,所以abstract关键字不能和final,static,private关键字配合使用。 ...原创 2019-02-23 21:43:41 · 233 阅读 · 0 评论 -
接口
接口为什么会出现接口,接口存在的意义。举个例子,手机有照相的功能,照相机有照相的功能,智能手表也有照相的功能。手机,照相机,智能手表都有照相的功能,但是我们难以向上抽取一个公共的父类。这时我们将照相的功能作为接口,手机,照相机,智能手表去实现这个接口。接口中的成员:抽象方法和常量package cn.hpu.tel;//接口访问修饰符,publicpublic interf...原创 2019-02-24 12:01:30 · 155 阅读 · 0 评论 -
关于一个实现类实现多接口时出现的重名默认方法问题的解决方案
1.一个类可以实现多个接口,但是如果实现的这多个接口中有重名的默认方法,就必须通过在实现类中重写默认方法。如,接口IPhoto中有默认方法connectionpackage cn.hpu.tel;public interface IPhoto { public void photo(); public default void connection() { System.o...原创 2019-02-24 20:24:49 · 3160 阅读 · 0 评论 -
关于接口中重名常量处理的解决方案
package cn.hpu.test;interface one{ static int x=11;}interface two{ final int x=22;}class Three{ public int x=33;}public class TestOne extends Three implements one ,two{ public void test(...原创 2019-02-24 21:06:26 · 359 阅读 · 0 评论 -
内部类
定义在java中可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类为什么要将一个类定义在另一个类里面呢?内部类隐藏在外部类之内,更好的实现了信息的隐藏。内部类信息的获取需要借助外部类。内部类的分类1成员内部类2.静态内部类3.方法内部类 4.匿名内部类 1.成员内部类 成员内部类是最常见的内部类,又称为普通内部类 p...原创 2019-02-25 09:30:24 · 99 阅读 · 0 评论 -
方法内部类
方法内部类顾名思义,定义在某个方法内的类称为方法内部类。方法内部类的知识点:1.方法内部类的作用域仅仅在某个方法内2.和方法内部成员使用规则一样,方法内部类class前面不能有public,static,protected,private修饰3.类中不能包含静态成员4.可以包含final,abstract修饰的成员package cn.hpu.people;//...原创 2019-02-26 11:27:55 · 851 阅读 · 0 评论 -
匿名内部类
package cn.hpu.test;//import cn.hpu.anonymous.Man;import cn.hpu.anonymous.Person;//import cn.hpu.anonymous.Women;public class PersonTest { // //根据传入类型的不同,调用不同的方法// //方案一:创建getRead方法// publi...原创 2019-02-26 14:37:19 · 104 阅读 · 0 评论 -
往HashSet中添加重复的自定义类的对象的相关问题
我们知道,HashSet是不允许存放相同的元素的。比如我们存入相同的字符串,就不会存入成功。这是因为String类有自己的equals方法用来判断是否相等。当我们存入自定义的类的对象时,就会出现可以存入相同的类的对象。这是因为自定义类的对象并没有equals方法。这时我们需要重写HashCode方法和equals方法,用来判断添加的元素是否和已经存在的元素相等。那么我们如何重写equ...原创 2019-03-07 09:54:56 · 1014 阅读 · 0 评论 -
抽象方法
抽象方法抽象方法满足的要求1.abstract修饰的方法,称为抽象方法。抽象方法没有方法体2.子类要重写父类的抽象方法。如果子类没有重写父类的抽象方法,那么子类也要设置为抽象类。为什么要设置抽象方法?动物类有吃的方法,然而猫类的吃的方法有自己的逻辑实现,狗类吃的方法也有自己的逻辑实现,这时我们再去实现动物类的吃的方法就没有必要了。所以我们就把动物类的吃的方法设置为抽象方法。...原创 2019-02-23 21:30:48 · 892 阅读 · 0 评论 -
抽象类
抽象类为什么会存在抽象类,抽象类的功能是什么?下面的这段代码定义了一个动物类,动物类中有自己的吃的方法public class Animal { //属性:昵称,年龄 private String name; private int month; public Animal() { } public Animal(String name,int month) ...原创 2019-02-23 20:48:39 · 87 阅读 · 0 评论 -
方法重载和方法重写
方法重载:(1)方法重载是指在同一个类中的方法。(2)方法名必须相同,参数列表不同(参数个数,顺序,类型)(3)方法返回值类型,访问修饰符不做限制。下面代码中Dog类的sleep()方法就是重载。public class Dog extends Animal { private String sex; public Dog() { } public S...原创 2019-01-13 16:20:39 · 147 阅读 · 0 评论 -
访问修饰符
上图访问修饰符的访问范围从上而下逐渐增加。(1)private只允许在本类内被访问(2)public允许在任意位置被访问(3)protected修饰的成员允许在当前类,同包内的任意类,跨包子类内被访问。也就是说protected修饰的成员不允许跨包非子类调用。(4)默认修饰符可以被当前类,同包任意类调用。也就是说,跨包的子类或者非子类都不允许调用。...原创 2019-01-13 18:36:15 · 134 阅读 · 0 评论 -
构造方法
(1)构造方法名必须要与类名相同且没有返回值(2)构造方法的语句格式为:public 构造方法名() { //初始化代码}(3)强制要求:构造方法的使用只能在对象的实例化时调用。怎么理解这句话呢?也就是说构造方法只能配合new关键字在对象实例化时调用(它和new是好搭档),不能使用常用的对象名.方法名调用。(4)同一个类的构造方法可以通过this()这种方式相互调用。Ja...原创 2019-01-09 14:56:37 · 256 阅读 · 0 评论 -
带参构造方法
package cn.hpu.animal;public class CatTest { public static void main(String[] args) { // TODO Auto-generated method stub //对象实例化 Cat one=new Cat("花花",3,"中华田园猫"); Cat two=new Cat(); ...原创 2019-01-09 15:39:35 · 4660 阅读 · 1 评论 -
java包名的相关问题
(1)同一个包内不能有相同的类名(2)包名通常为:域名倒序+模块+功能(3)包名语句必须在程序的第一行,并且有分号。原创 2019-01-09 19:52:27 · 287 阅读 · 0 评论 -
成员属性的初始值问题
与在方法中定义属性不赋初值不能使用不同,java中的成员属性在定义式系统就会赋初值。系统赋初值情况如下:原创 2019-01-09 16:57:28 · 316 阅读 · 0 评论 -
static关键字
static关键字上篇被static修饰的成员属性就成为了静态属性,也叫类属性;(1)静态成员随着类的加载而产生,随着类的彻底销毁而消失。所以它的生命周期很长。(2)静态成员的调用方法有两种,可以用对象.属性名也可以用类名.属性名也就是说类名可以直接调用静态属性。如果我把一只猫的价格定义为静态属性;private String name;//String 默认值为...原创 2019-01-10 09:48:33 · 155 阅读 · 0 评论 -
单例模式
什么是单例模式?单例模式需要满足什么要求?1.某个类只能有一个实例;2.必须自行创建实例;3.必须向系统提供这个实例。实现1.既然不能随意创建本类的对象,那就把本类的构造函数私有化2.在本类中创建静态的私有的对象3.在本类中提供共有的静态的方法来获取本类对象。代码实现方案有饿汉式,和懒汉式。1.饿汉式 public class SingletonOne...原创 2019-02-21 14:47:59 · 85 阅读 · 0 评论 -
java中throw与throws的区别
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。用在方法声明后面,跟的是异常类名可以跟多个异常类名,用逗号隔开表示抛出异常,由该方法的调用者来处理throws表示出现异常的一种可能性,并不一定会发生这些异常throw:则是用来抛出一个具体的异常类型。用在方法体内,跟的是异常对象名只能抛出一个异常对...转载 2019-03-26 09:54:17 · 172 阅读 · 0 评论