![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
3java基础教程之面向对象
Java.er
一起学编程
展开
-
3 面向对象概述
概述编程语言是人类创造的,因此里面很多思想来源于生活。程序员使用编程技术开发软件也是为了解决生活中一些繁琐的问题,这一节将要学习一种编程思想-面向对象,Java就是一门面向对象设计的语言。面向过程和面向对象的区别:通过对比,来更深入的了解下面向对象面向过程主要是把问题分解成多个不同的步骤,然后把各个步骤变成方法,它更强调过程面向对象会把问题分解成各个对象,然后各个对象之间进行交互,每个对...原创 2019-08-10 20:16:26 · 85 阅读 · 0 评论 -
15 多态
多态简介多态就是事物存在的多种形态,比如你在大街上看见一只藏獒,你可以说这只藏獒真凶猛,也可以说这只狗真凶猛,还可以说这个动物真凶猛,以上三种说法其实都是指的这只藏獒。在Java里面,也是存在多态的,只要全部符合下面这三种情况,就是多态1 有继承2有方法重写3 有父类引用指向子类对象例如下面代码就构成多态定义一个Animal类public class Animal{ in...原创 2019-08-11 15:33:13 · 267 阅读 · 0 评论 -
14 继承相关面试题
1.请问下面程序的输出结果是什么?class Fu{ public int num = 125; public Fu(){ System.out.println("fu"); } } class Zi extends Fu{ public int num = 256; publ...原创 2019-08-11 15:20:31 · 179 阅读 · 0 评论 -
13 super关键字
什么是super?super代表的是当前子类对象中的父类型特征。什么时候使用super?1 子类和父类中都有某个数据,例如,子类和父类中都有name这个属性。如果要再子类中访问父类中的name属性,需要使用super。例12 子类重写了父类的某个方法(假设这个方法名叫m1),如果在子类中需要调用父类中的m1方法时,需要使用super。例1子类调用父类中的构造方法时,需要使用super。...原创 2019-08-11 15:14:48 · 97 阅读 · 0 评论 -
12 方法的重写(override)
什么是重写?重写,也叫做覆盖,当父类中的方法无法满足子类需求时,子类可以将父类的方法进行重写编写来满足需求。比如孩子继承了父亲的房子,可以将房子重新装修。方法重写的条件:1 两个类必须是继承关系2 必须具有相同的方法名,相同的返回值类型,相同的参数列表.3 重写的方法不能比被重写的方法拥有更低的访问权限。4 重写的方法不能比被重写的方法抛出更宽泛的异常。(关于异常后面的章节再讲。)5...原创 2019-08-11 15:03:20 · 182 阅读 · 0 评论 -
11 继承extends
继承是面向对象三大特征之一。java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示。在java语言里面只支持单继承,即一个类只能有一个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不...原创 2019-08-11 14:53:35 · 96 阅读 · 0 评论 -
10 代码块的分类
什么是代码块?使用{}括起来的代码被称为代码块,根据其位置和声明的不同可以分为下面4种:局部代码块,在方法中出现,限定变量生命周期,及早释放,提高内存利用率构造代码块,在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行静态代码块, 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。一般用于加载驱...原创 2019-08-10 21:19:38 · 93 阅读 · 0 评论 -
9 static关键字
static的作用?static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在方法区里面,因此,静态变量在类加载阶段赋值,并且只赋值一次。请看例1static可以修饰方法,被static修饰的方法叫做静态方法,不用创建对象就能能直接访问该方法,即使用类名.静态方法名的方式。静态方法不能访问非静态的数据,静态方法不能使用this。请看例2static可以定义静态语...原创 2019-08-10 21:14:20 · 78 阅读 · 0 评论 -
8 this关键字
this是什么?this是java里面的一个关键字,是一种引用类型,在堆(heap)中的每个java对象上都有一个this指向自己。this代表着当前对象的引用。this可以做什么?1.可以区分成员变量和局部变量。例:/* 创建一个歌手类*/class Singer{ private String name; /* 以前在编写set方法时为了将传...原创 2019-08-10 21:07:33 · 114 阅读 · 0 评论 -
7 构造方法
构造方法的概念构造方法(constructor),有的地方叫做构造器或者构造函数。构造方法的作用是给对象数据进行初始化。构造方法格式特点1 方法名与类名相同(注意大小写也要与类名一致)2 没有返回值类型3 没有void修饰4 没有具体的返回值return;5 如果一个类没有提供任何构造方法,系统默认提供无参数构造方法6 如果一个类已经手动的提供了构造方法,那么系统不会再提供任何构...原创 2019-08-10 20:58:54 · 394 阅读 · 0 评论 -
6 方法调用时参数传递的问题
方法调用时,参数除了可以传递基本数据类型,还可以传递引用数据类型,这两种参数在传递的时候会有一些差异,在使用的时候需要注意基本数据类型的参数传递先来看看这段代码,m1方法中的i和main方法里面的i的值分别是多少?public class ParamTest01{ public static void m1(int i){ i++; System.o...原创 2019-08-10 20:52:46 · 321 阅读 · 0 评论 -
5 封装性和private关键字
封装这一节来看下面向对象三大特征之一的封装。什么是封装?封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的优点:隐藏代码的实现细节,提高安全性。举个例子,我们日常生活中的插座,如果没有封装外壳直接使用零线火线的话会比较危险,加上外壳封装之后使用起来既方便又安全private关键字看看下面代码中所描述的问题。class Person { String name...原创 2019-08-10 20:36:55 · 189 阅读 · 0 评论 -
4 对象内存图解
创建一个对象通过画图来看下对象在内存中是如何分配的,这样更有助于初学者理解对象。学生类class Student{ //学号 int id; //姓名 String name; //性别 boolean sex; //年龄 int age; public void study() { ...原创 2019-08-10 20:32:15 · 120 阅读 · 0 评论 -
3 成员变量和局部变量
成员变量和局部变量的区别之前简单的介绍过这两种变量,这一节里面,我们来详细的分析一下两者的区别成员变量:写在类体的里面,方法体的外面,声明时可以不进行初始化值,可以被本类或其他类的方法进行调用。局部变量:写在方法体的里面,声明时可以不初始化,但是在使用前一定要初始化,只能在声明局部变量的方法内进行调用。数据类型的默认值如果只声明成员变量不对其进行赋值,那么Java里面的8个基本数据类型的...原创 2019-08-10 20:25:17 · 110 阅读 · 0 评论 -
2 类与对象
属性和行为我们学习编程最主要的一个目的就是解决日常生活中的问题,将繁琐的事物交给计算机去处理。这就会需要程序员将日常生活中的事物进行抽象,然后在使用编程语言编写出来。如何将日常生活中的事物进行抽象呢?一般事物都具有下面两个特点:属性-描述该事物的信息,一般是事物上面的名词行为-描述该事物能做什么,一般是动词比如学生的属性:学号:1001姓名:张三性别:男年龄:20学生的行为...原创 2019-08-10 20:23:14 · 94 阅读 · 0 评论 -
16 final关键字
final的特点final的中文意思是最终,既然是最终就是已经结束了,无法再改变了。在Java里面final关键字同样也有着类似的功能。final修饰的类无法被继承。例1final修饰的方法无法被重写。例2final修饰的局部变量,一旦赋值,不可再改变。例3final修饰的成员变量必须初始化值。例4例1:final class A{}class B extends A{}//er...原创 2019-08-11 15:37:57 · 151 阅读 · 0 评论