![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
文章平均质量分 63
面向对象知识部分
好汤圆
耐得住寂寞 守得住繁华
热爱Java 热爱后端开发 欢迎交流!
展开
-
面向对象:13、内部类
面向对象:13、内部类很多时候我们创建类的对象的时候并不需要使用很多次,每次只使用一次,这个时候我们就可以使用内部类了。1、内部类概述内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。内部类不是在一个java源文件中编写俩个平行的俩个类,而是在一个类的内部再定义另外一个类。 我们可以把外边的类称为外部类,在其内部编写的类称为内部类。内部类分为四种:成员内部类静态内部类局部内部类匿名内部类2、成员内部类(实原创 2021-04-09 09:12:23 · 174 阅读 · 0 评论 -
面向对象:12、接口
面向对象:12、接口1、什么是接口接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守面向对象中OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能原创 2021-04-06 22:44:04 · 190 阅读 · 0 评论 -
面向对象:11、abstract关键字
面向对象:11、abstract关键字abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。abstract修饰类:抽象类抽象类不能被实例化抽象类中的构造器起到子类实例化时调用的作用abstract修饰方法:抽象方法抽象方法只有方法的声明,没有方法体抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类子类继承抽象类后,需要实现抽象类中没有实现的所有抽象方法,否则这个子类也要声明为抽象类原创 2021-04-06 20:31:59 · 247 阅读 · 0 评论 -
面向对象:10、final关键字
面向对象:10、final关键字1、修饰类用final修饰的类不能被继承,没有子类例如:我们是无法写一个类去继承String类,然后对String类型扩展的,因为API中已经被String类定义为final的了.2、修饰方法用final修饰的方法可以被继承,但是不能被子类的重写例如:每个类都是Object类的子类,继承了Object中的众多方法,在子类中可以重写toString方法、equals方法等,但是不能重写getClass方法 wait方法等,因为这些方法都是使用fianl修饰的。3、原创 2021-04-06 20:04:11 · 85 阅读 · 0 评论 -
面向对象:9、static关键字
面向对象:9、static关键字一、static修饰变量1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。静态变量和非静态变量的区别静态变量(类变量):我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。实例变量(非静态变量):我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中原创 2021-04-02 14:19:46 · 84 阅读 · 0 评论 -
面向对象:8.1、多态:instanceof和类型转换
面向对象:8.1、多态:instanceof和类型转换a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false。使用情境:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。 如果 a instanceof A返回true,则 a instanceof B也返回true. 其中,类B是类A的父类。原创 2021-03-31 09:30:35 · 151 阅读 · 0 评论 -
面向对象:8、多态
面向对象:8、多态1、什么是多态多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。多态可以让我们不用关心某个对象到底是什么具体类型,就可以使用该对象的某些方法,从而实现更加灵活的编程,提高系统的可扩展性。允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。相同类域的不同对象,调用相同的方法,执行结果是不同的一个对象的实际类型原创 2021-03-27 10:47:17 · 301 阅读 · 0 评论 -
面向对象:7.2、super关键字
面向对象:7.2、super关键字子类继承父类之后,在子类中可以使用this来表示访问或调用子类中的属性或方法,使用super就表示访问或调用父类中的属性和方法。不管是显式还是隐式的父类的构造器,super语句一定要出现在子类构造器中第一行代码。所以this和super不可能同时使用它们调用构造器的功能,因为它们都要出现在第一行代码位置。【super使用的注意的地方】用super调用父类构造方法,必须是构造方法中的第一个语句。super只能出现在子类的方法或者构造方法中。super 和 thi原创 2021-03-26 11:14:45 · 120 阅读 · 0 评论 -
面向对象:7.1、方法的重写
面向对象:7.1、方法的重写方法重写只存在于子类和父类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被重写.静态方法不能重写父类的静态方法不能被子类重写为非静态方法父类的非静态方法不能被子类重写为静态方法子类可以定义与父类的静态方法同名的静态方法(但是这个不是覆盖)私有方法不能被子类重写,子类继承父类后,是不能直接访问父类中的私有方法的,那么就更谈不上重写了。重写的语法方法名必须相同参数列表必须相同访问控制修饰符可以被扩大,但是不能被缩小: publi原创 2021-03-26 10:36:31 · 171 阅读 · 0 评论 -
面向对象:7、继承
面向对象:7、继承Java当中只有单继承!!!一、继承继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系.类和类之间的继承是单继承父类中的属性和方法可以被子类继承子类中继承了父类中的属性和方法后,在子类中能不能直接使用这些属性和方法,是和这些属性和方法原有的修饰符(public protected d原创 2021-03-26 00:02:11 · 75 阅读 · 0 评论 -
面向对象:6.封装
面向对象:6.封装一、问题的引入二、封装性的体现三、封装性的体现,需要权限修饰符来配合四、构造器五、this关键字六、JavaBean面向对象的特征一:封装与隐藏 3W:what? why? how?一、问题的引入当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条原创 2021-03-22 10:30:27 · 127 阅读 · 0 评论 -
面向对象:5.方法再理解
面向对象:5.方法再理解一、方法的重载二、可变个数的形参三、方法参数的值传递机制四、递归方法一、方法的重载1.定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。“两同一不同”:同一个类、相同方法名参数列表不同:参数个数不同,参数类型不同2.举例:Arrays类中重载的sort() / binarySearch()3.判断是否是重载:跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!4.在通过对象调用方法时,如何确定某一个指定的方法:方法名原创 2021-03-21 10:01:49 · 68 阅读 · 0 评论 -
面向对象:4.类中方法
面向对象:4.类中方法类中方法的声明和使用方法:描述类应该具有的功能比如: Math类:sqrt()\random() … Scanner类:nextXxx() … Arrays类:sort() \ binarySearch() \ toString() \ equals() \ …1.举个例子:public void eat(){}public void sleep(int hour){}public String getName(){}public String原创 2021-03-19 00:06:32 · 274 阅读 · 0 评论 -
面向对象:3.类中属性
面向对象:3.类中属性说说类中属性和局部变量的关系和区别吧!属性(成员变量) vs 局部变量1.相同点: 1.1 定义变量的格式:数据类型 变量名 = 变量值 1.2 先声明,后使用 1.3 变量都有其对应的作用域2.不同点: 2.1 在类中声明的位置的不同 属性:直接定义在类的一对{}内 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量 2.2 关于权限修饰符的不同 属性:可以在声明属性时,指明其权限,使用权限修饰原创 2021-03-18 23:42:52 · 96 阅读 · 0 评论 -
面向对象:2.类和对象
面向对象:2.类和对象一、设计类,其实就是设计类的成员属性 = 成员变量 = field = 域、字段方法 = 成员方法 = 函数 = method创建类的对象 = 类的实例化 = 实例化类二、类和对象的使用(面向对象思想落地的实现)1.创建类,设计类的成员2.创建类的对象3.通过“对象.属性”或“对象.方法”调用对象的结构三、如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非static的)意味着:如果我们修改一个对象的属性a,则不影响另外一个对象属性a的值。四、对原创 2021-03-18 23:42:20 · 117 阅读 · 0 评论 -
面向对象:1.什么是面向对象
面向对象:1.什么是面向对象一、Java面向对象学习的三条主线:1.Java类及类的成员:属性、方法、构造器;代码块、内部类2.面向对象的三大特征:封装性、继承性、多态性、(抽象性)3.其它关键字:this、super、static、final、abstract、interface、package、import等“大处着眼,小处着手”二、“人把大象装进冰箱”1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。① 把冰箱门打开② 抬起大象,塞进冰箱② 把冰箱门关闭2.面向对象:原创 2021-03-18 23:41:09 · 135 阅读 · 1 评论