day01【温习回想、静态、承继、引证类型运用】
今日内容
- 温习回想
- 界说类。一个Java文件能够界说多个类。可是只需一个类是用public润饰,public润饰的类名有必要称为Java文件名。
- 类中有且仅有5大成分(五大金刚)
- 成员变量Field:描绘类或许政策的特征信息的。
- 成员办法Method:描绘类或许政策的安全出产法行为的。
- 结构器(结构办法,C安全手抄报onstructor): 初始化类的一个政策回来。
- 代码块:还没有学。
- 内部类:还没有学。
- 封装
- 面向政策的三大特征之一:封装,承继,多态。
- 形成了规笔记范,即便毫无含义仍是会这样写代码!
- 合理躲藏,合理暴露。
- 封装的规范:成员变量私有,办法一般揭露,供给成套的getter和setter办法暴露成员变量的取值和赋值。
- 封装的作用:行进程序员客栈安全性,行进代码的组件化思想。
- 封装现已成为Java代码的规范,即便毫无含义,咱们也要这样写代码(成员变量私有,办法揭露)
- this要害字
- thjava根底知识点is代表了当时政策的引证。
- this能够呈现在结构器和办法中。
- this呈现在结构器中代安全期是哪几天表结构器正在初始化的政策。
- this呈现在办法中,哪个政策调用办法,this就代表哪个政策。
- this能够拜访政策的成员变量,差异成员变量是部分的仍是政策中的成员变量。
- static要害字.
- 静态。
- 润饰方安全期计算器法和变量都是归于类的。没有static润饰的办法和变量是归于每个政策的。
- 承继
- 是面向方java面试题针的三大特征:封装,承继,安全期是哪几天多态。
学习方安全期针
-
能够写出类的承继格局
- 子类 extends 父类{
- }
-
能够说出承继的特安全出产法征
- 类是单承继的,能够多层承继,能够有多个子类。
-
能够差异this和super的作用
-
this代表本类政策引证
- this.本类成员变量
- this.本类办法
- t安全期计算器his(…):拜访兄弟结构器
-
super代表父类政策引证。
- s笔记本电脑性价比排行2020uper.父类变量
- super.父类办法
- super(…):拜访父类结构器笔记本电脑怎样连wifi
-
this代表本类政策引证
-
能够说出办法重写的概念
- 办法重写:子类写一个办法掩盖父类的办法,子类以后用自己重写的办法。
-
能够说出办法重写的留心事项
- 1.重写办法的称谓和形参列表要与父类被重写办法一起。
- 2.重写办法的权限要与父类相同或许更大。 public > protected > 缺省 > private
-
能够掌握static要害字润饰的变量调用办法
- 类名.静态变量
- 政策.静态变量 (不推荐运用)
-
能够掌握static要害字润饰的办法调用办法
- 类名.静态办法
- 政策.静态办法(不推荐运用)
榜首章 温习笔记本电脑排名前十回想
1.1 怎样界说类
类的界说格局如下:
润饰符 class 类名安全教育渠道{
// 类中的五大成分。
// 1.成员变量(特征)
// 2.成员办法 (行为)
// 3.结构器 (初始化类的政策数据的)
// 4.内javahdxx部类
// 5.代码块
}
例如:
publijava环境变量装备c class Stude安全教育渠道登录nt {
// 1.成员变量
public String name ;
public char sex ; // '男' '女'
public int age;
}
1.2Java 怎样经过类创立政策
类名 政策java编译器称谓 = new 类名();
例如:
Student stu = n笔记本电脑开不了机ew Student();
1.3 封装
1.3.1 封装的过程
1.运用 private
要害字来润饰javahdxx成员变量。
2.安全期是哪几天运用public
润饰getter和setter办法。
1.3.2 封装的过程结束
- private润饰成员变量
public c安全lass Student {
private String nam笔记本e;
private int age;
}
- public润饰getter和setter办法
public class Student {
private String name;
private int age;
public void setName笔记(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
if (a > 0 && a <200) {
age = a;
} else {
System.out.println("年岁不合法!java模拟器");
}
}
public int getAge笔记()程序员装逼代码 {程序员怎样学
re程序员一分钟毛遂自荐turn age;
}
}
1.4 结构器
1.4.1 结构器的作用
经过调用结构器能够回来一个类的政策,结构器一同安全担任帮咱们把政策的数据(特征和行为等信息)安全初始化安全教育渠道好。
1.4.2 结构器的格局
润饰符 类名(形参列表) {
// 结构体代码,实施代码
}笔记本电脑什么牌子好
1.4.3 结构器的运用
首要界说一个学生类,代码如下:
public class Student {
// 1.成程序员培训班要多少钱员变量
public String name;
public int age安全教育;
// 2.结构器
public Student() {
System.out.println("无参数结构器被调用");
}
}
接下来通笔记本电脑什么牌子好过调用结构器得到两个学生政策。
public clasjava游戏s CreateStu02 {
pub笔记本电脑lic static void main(String[] arg安全教育s) {
// 创java言语建一个学生政策
// 类名 变量称谓 = new 类名();
Student s1 = new Stu程序员装逼代码dent();
// 运用政策拜访成员变量安全,赋值
s1.name = "张三";
s1.age = 20 ;
// 运用政策拜访成员变量 输出值
System.out.pjava环境变量装备rintln(s安全期1.name);
System.out.println(s1.age);
Student s2 = new Student();
// 运用政策拜访成员变量 赋值
s2.name = "李四";
s2.age = 18 ;
System.安全教育渠道登录out程序员那么心爱.prin安全教育tln(s2.程序员name);
System.笔记本电脑开机黑屏没反应怎样办out笔记.prijava面试题ntln(s2.age);
}
}
1.5 this要害字的作用
1.5.1 this要害字的作用
this代表地点类的当时政策的引证(地址值),即代表当时政策。
1.5.2 this要害字的运用
1.5.2.1 用于一般的gettter与seJavatter办法
this呈现在实例办法程序员客栈中,谁调用这个办法(哪个政策调用这个办法),this就代表谁(this就代表哪个政策)。
public class Student {
private String name;
privat笔记本电脑排名前十e int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
pu程序员计算器blic void setAge(int age) {
if (age > 0 && age < 200) {
this.安全手抄报age = age;
} else {
Syst安全em程序员一分钟毛遂自荐.out.println("年岁不合法!");
}
}
public笔记本电脑怎样连wifi int getAge() {
retujava模拟器rn age;
}
}
1.安全期是哪几天5.2.2 用于结构器中
this呈现在结构器中,代表结构器正在初始化的那个政策。
public class Student {
private String name;
private int age;
// 无参数结构办法
public Student() {}
// 有参数结构笔记本电脑什么牌子好办法
public Student(String n笔记本电脑什么牌子好ame安全教育渠道登录进口,int age) {
this.nam程序员培训班要多少钱e = name;
this.age = age;
}
}
第二章 static要害java怎样读字
2.1 概述
从前咱们界说过如下类:
public class Student {
// 成员变量
public String name;
public char sex; // '男' '女'
public int笔记本电脑什么牌子好 age;程序员客栈
// 无参数结构器
publi程序员那么心爱c Student() {
}
// 有参笔记本电脑数结构器
p安全ublic Student(String a) {
}
}
咱们现已知道面向政策中,存在类和政策的概念,咱们在类中界说了一些成员变量,例如name,age,sjava根底知识点ex ,作用发现这些成员变量,每安全期个政策都存在(由于每个政策都能够拜访)。
而像程序员装逼代码name ,age , sex确实是每个学生政策都应该有的特征,应该归于每个笔记本政策。
所以Java中成员(变量和办法)等是存在程序员那么心爱所特征的,Java是经过static要害字来差异的。static要害字在Java开发十分的重要,关于了解面向政策十分要害。
关于 static
要害字的运用,它能够用来润饰的成员变java面试题量和成员办法,被static润饰的成员是归于类的是放在静态区中,没有static润饰的成员变量和办法则是归于政策的。咱们上面事例中的成员变量都是没有static润饰的,所程序员计算器以归于每个政策。
2.2 界说格局和运用
static是静态的意思。 static能够润饰成员变量或许润饰办法。
2.2.1 静态变量及其拜访
有static润饰成员变安全期量,阐明这个成员变量是归于类的,这个成员变量称为类变量或许静态成员变量。 直接用 类名拜访即可。由于类只需一个,所以静态成员变量在内存区域中也只笔记本电脑开机黑屏没反应怎样办存在一份。全部的政策都能够同享这个变量。
怎样运用呢
例如现在咱们需求程序员薪酬一般多少界说传智全部的学生类,那么这些学生类的政策的校园特征应该都是“传智”,这个时分咱们能够把这个特征界说成static润饰的静态成员变量。
界说格局
润饰符 static 数据类型 变量名 = 初始值;
举例
public class St安全ud安全ent程序员需求什么学历 {
public static String schoolName = "传智播客"; // 归于类,只需一份。
// .....
}
静态成员变量的拜访:
格局:类名.静态变量
public static void ma笔记本电脑开机黑屏没反应怎样办in(String[] args)安全{
System.out.pri笔记本电脑排名前十ntln(Student.sJavachoolName); // 传智播客
Student.schoolName = "黑马程序员"笔记本电脑排名前十;
System.out.println(Student.schoolName); // 黑安全出产法马程序员
}
2.2.2java游戏 实例变量及其拜访
无static润饰的成员变量归于每个政策的, 这个成员变量叫实例变量,之前咱们写成员笔记本电脑变量便是实例成员变量。
需求留心的是:实例成员变量归于每个政策,有必要创立类的政策才调够拜访。
格局:政策java环境变量装备.实例成员变量
2.2.3 静态办法及其拜访
有static润饰成员安全教育渠道办法,阐明这个成员办法是归于类的,这个成员办法称为类办法或许静态办法*笔记本电脑怎样连wifi*。 直接用 类名拜访即可。由于类只需一个,所以静态方笔记本电脑开机黑屏没反应怎样办法在内存区域中也只存在一份。全部的政策都能够同享这个办法。
与静态成员变量相同,静态办法也是直接经过类名.办法称谓即可拜访。
举例
public class Student{
public static String schoolName = "传智播客"; // 归于类,只需javahdxx一份。
// .程序员需求什么学历....
public static void study(){
System.out.println("咱们都在黑马程序员学习");
}
}
静态成员变量的拜访:
格局:类名.静态办法
public static void main(String[] args){
Student.study();
}
2.2.4 实例办法及其拜访
无static润饰的成员办法归于每个政策的, 这个成员办法叫实例办法。
需求留心的是:实例办法是归于每个笔记本电脑怎样连wifi政策,有必要创立类的政策才调够拜访。
格局:政策.实例办法
示例:
publ笔记本cpu天梯图ic class Student {
// 实例变量
private String name ;
// 2笔记本电脑性价比排行2020.办法:行为
// 无 static润饰,程序员计算器实例办法。笔记归于每个政策,有必要创立政策调用
public void run(){
System.out.println("学生能够跑笔记本电脑排名前十步");
}
// 无 static润饰,实例办法
publ安全教育ic void sleep(){程序员
Syst笔记本电脑怎样连wifiem.out.println("学生睡觉");
}
pujava言语blic static void study(){
}
}
publ笔记本电脑排名前十ic static void main(String[] args){
// 创立政策
Student stu = new Student ;
stu.name程序员装逼代码 = "徐干";
// Student.sleep();// 报错,有必程序员计算器要用政策拜访。
stu.sljava根底知识点eep();
stu.run();
}
2.3 小结
1.当 static
润饰成员变量或许成员办法时,该变量称为静态变量,该办法称为静笔记本电脑怎样连wifi态办法。该类的每个政策都同享同一个类的静态变量和静态办法。任何政策都能够java游戏更改该静态变量的值或许拜访静态办法。可是不推荐这种方安全期是哪几天法去安全拜访。由于静态变量或许安全教育渠道静态办法直接经过类名拜访即可,完全没有必要用政策去拜访。
2.无static程序员装逼代码润饰的成员变量或许成员办法,称为实例变量,实例办法,实例变量和实例办法有必要创立类的政策,然后经过政策来拜访。安全手抄报
3.static润饰的成员归于类安全手抄报,会存储在静态区,是跟着类的加载而加载的,程序员怎样学且只加载一次,所以只需一份,节约内存。存储于一块固定的java怎样读内存区域(静态区),所以,能够直接被类名调用。程序员客栈它优先于javahdxx政策存在,所以,能够被全部政策同享安全。
4.无static润饰的成员,是归于政策,政策有多少个,他们就会呈现多少份。所以有java言语必要由政策调用。
第三章 承继
3.1 概述
3.1.1 引入
假定咱们要界说如下类:
学生类,教师类和工人类,分析如下。
-
学生类
特征:名字,年岁
行为:吃饭笔记,睡觉 -
教师类
特征:名字,年岁,薪水
行为:吃饭,睡觉,教育 -
班主任
特征:名字,年岁,薪水
行为:吃饭,睡觉,处理
假定咱们界说了这三个类去开发一个体系,那么这三个类中就存在许多重复的信息(特征:名字,年岁。行为:吃饭,睡觉)。这样就导致了相同代码许多重复,代码显得很臃肿和冗余,那么怎样处理呢?
假定多个类中存在相同特征和行为时,咱们能够将这些内容抽取到独自一个类中,安全期是哪几天那么多个类无需再界说这些特征和javahdxx行为,只需承继那一个类即可。如图所示:安全教育渠道登录
其间,多个类能够称为子类,独自被承继的那一个类称为父类、超类(superclass)或许基类。
3.1.2javahdxx 承继的含义
承继描绘的是事物之间的所属联络,这种联络是:is-a
的联络。例如,兔子归于食草动物,食草动物归于动物。可见,父类更通用,子类更详细。咱们经过承继,能够使多种事物之间形成一种联络体系。
承继:便是子类承继父类的特征和行为,使得子类政策能够直接具有笔记与父类相同的特征、相同的行为。子类能够直接拜访父类中的非私有的特征和行为。
3.1.3 承继的长处
- 行进代码的复用性(削减java根底知识点代码冗余,相同代码重复运用)。
- 使类与类之间产生了联络。
3.2 承继的格局
经过 extends
要害字,能够声明一个子类承继别的一个笔记本电脑性价比排行2020父类,界说格局如下:
class 父类 {
...
}
clajavascriptss 子类 extends 父类 {
...
}
需求留心:Java是单承继的,一个类只能承继一个直接父类,跟实际世界很像,可是Java中的子类是愈加强大的。
3.3 承继事例程序员装逼代码
3.3.1 事例
请运用承继界说安全以下类:
- 学生类
特征:名字,年岁
行为:吃饭,睡觉 - 教师类
特征:名字,年岁,薪水
行为:吃饭java环境变量装备,睡觉,教育 - 班主任
特征:名字,年岁,薪水
行为:吃饭,睡觉,处理
3.3.2 事例图解分析
教师类,学生类,还有班主任类,实践上都是归于人类的,咱们能够界说一个人类,把他们相同的特征和行为都界说在人类中,然后承继人类即可,子类特有的特征和行为就界说在子类中了。
3.3.3 事例代码结束
1.父类Human类
public class Human {
// 合理躲藏
private String name ;
private int age ;
// 合理暴露
public String getN笔记本电脑怎样连wifiame() {
return name;
}
public void set程序员计算器Njavascriptame(String name) {
this.name = namejava环境变量装备;
}
public i程序员客栈nt gjava面试题etAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.子类Teacher类
public class Teacher extends Hu安全教育渠道man {
// 薪酬
priva安全期te double salary ;
// 特有办法
public void teac程序员怎样学h(){
System.out.println("教师在仔细教技能!");
}程序员装逼代码
public double getSalary() {
return程序员计算器 salary;
}
public voi笔记本电脑开机黑屏没反应怎样办d setSajava编译器lary(double salary) {
th程序员客栈is.salary = salary;
}
}
3.子类Student类
public class Student extends Human{
}笔记本
4.子类BanZhuren类
public class Teacher extends Human {
// 薪酬
private doub程序员客栈le salary ;
// 特有程序员装逼代码办法
public void admin(){
System.out.println("班主任着重纪律问题!");
}
public double getSal程序员需求什么学历ary() {
return salary;
}
pu笔记本blic void setSalary(double salary) {
this.salary = salary;
}
}
5.检验类程序员
public class Test {
public static void main(String[] args) {
Teacher dlei = new Teacher();
dlei.setName("播仔");
dlei.setAge("31");
dlei.程序员装逼代码setSalary(1000.99);
System.out.println(dlei.get程序员怎样学Name());
System.out.println安全期(dlei.getAge());
System.out.println(dlei.getSalary());
dlei.teach()安全手抄报;
BanZjava环境变量装备huRen linTao = new BanZhuRen();
linTao.setName("灵涛");笔记本cpu天梯图
linTao.setAge("28");
linTao.setSalary(1000.99);
System.out.printl程序员计算器n(linTao.getName());
System.out.println(linTao.getAge());
System.ojava面试题ut.pri笔记ntln(linTao.getSalary());
linTao.admin();
Studen安全教育渠道t xugan = new Student(笔记本电脑怎样连wifi);
xugan.setName("播仔")Java;javahdxx
xugan.setAge("31");
//xugan.setSalary(1000.99); // xugan没有薪水特征,报错!
Systejava面试题m.out.println(xugan.getNjavascriptame());
System.out.println(xugan.getAge());
}
}
3.3.4 小结
1.承继实践上是子类相同javascript的特征和行为能够界说在父类中,子类特有的特征和行为由笔记本电脑怎样连wifi自己界说安全期,这样就结束了相同特征和行为的重复运用,然后行进了代码复用。
2.子类承继父类,就能够安全教育渠道登录进口直接得到父类的成员变量和办法。是否能够承继全部成分呢?请看下节!
3.4 子类java怎样读不能承继的内程序员客栈容
3.4.1 引入
并不是父类安全期是哪几天的全部内容都能够给子类承继的:
子类不能承继父类的结构器,由于子类有自己的结构器。
值得留心的是子类能够承继父类的私有成员(成程序员那么心爱员变量,办法),仅仅子类无法直接拜访算了,能够经过getter/setter办法拜访父类的private成员变量。
3.4.1 演示代码
public class Demo03 {
public stjavascriptatic void main(笔记本电脑什么牌子好Strin笔记本电脑开不了机g[] args) {
Zi z = new Zi();
System.out.println(z.num1);
// System.out.println(z.num程序员一分钟毛遂自荐2); // 私有的子类无法运用
// 经过getter/setter办法访安全问父类的private成员变量
System.out.println(z.getNum2());
z.show1();
// z.sho程序员w2(); // 私有的子类无法运用
}
}
class Fu {
public int num1 = 10;
priva安全期te int num2 = 20;
pjava编译器ublic void show1() {
System.out.println("show1");
}
private安全出产法 void show2() {
System.out.println("show2");
}
publ安全期是哪几天ic int getN程序员培训班要多少钱u笔记本电脑开不了机m2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
}
class Zi extends Fu {
}
3.5 承继后的特征—成员变量
当类之间产生了承继联络后,其间各类中的成员变量,又产生了哪些影响呢?
3.5.1 成员程序员变量不重名
假定子类程序员那么心爱父类中呈现不重名程序员培训班要多少钱的成员变量,这时的拜访是没有影响的。代码如下:
class Fu {
/笔记/ Fu中的成员变量
int num = 5笔记;
}
class Zi extends Fu {
// Zi中的成员变量
int num2 = 6;
// Zi中的成员办法
publJavaic void show() {
// 拜访父类中的num
System.out.println("Fu num="+num); // 承继而来,所以直接拜访。
// 拜访子类中的num2
System.out.println("Zi num2="+num2);
}
}
class Demo04 {
public static void main(javascriptString[] args) {
// 创立子类政策
Zi z = new Zi();
// 调用子类中的show办法
z.show();
}
}
演示作用:
Fu num = 5
Zi num2 = 6
3.5.2 成员变量重名
假定子类父类中呈现重名的成员变量,这时的拜访是有影响的。代码如下:
class Fu1 {
// Fu中的成员变量。
in程序员t num = 5;
}
class Zi1 extends Fu1 {
// Zi中的成员变量
int num = 6;
public void show安全手抄报() {
// 拜访父类中的nujava怎样读m
System.out.println("Fu num=" + n笔记本电脑性价比排行2020um);
// 拜访子程序员是做什么的类中的num
System.out.println("Zi num=" + num);
}
}
class Demo04 {安全教育
publi安全出产法c static void main(String[] args) {
// 创立子类政策
Zi1 z = new Zi1();
//程序员客栈 调用子类中的show办法
z1.show();
}
}
演示作用:
Fu num = 6
Zi num程序员是做什么的 = 6
子父类中呈现了同名的成员变量时,子类会优先拜访自己政策中的成员变量。假定此刻想拜访父类成员变量怎样处理呢?咱们能够运用super要害字。
3.5.3 super拜访父类成员变量
子父类中呈现了同名的成员变量时,在子类中需求拜访父类中非私有成员变量时,需求运用super
要害字,润饰父java面试题类成员变程序员需求什么学历量,类似于之前学过的 this
。
需求留心的是:super代表的是父类政策的引证,thisjava怎样读代表的是当时政策的引证。
运用格局:
super.父类成员变量名
子类办法需求批改,代码如下:
class Fu {
// Fu中的成员变量。
int num = 5;
}
class Zi extends Fu {
// Zi中的java模拟器成员变量
int num = 6;
public void show() {
int num = 1;
// 拜访办法中的num
System.out.println("method num=" + num);
// 拜访子类中的num
Systejava怎样读m.out.println("Zi num=" + this.num);
// 拜访父类中的num
System.out.println("Fu num=" + super.nujava模拟器m);
}
}
class D安全期是哪几天emo04 {
public static void ma笔记本电脑性价比排行2020in(String[] args) {
// 创立子类方java根底知识点针
Zi1 z = new Zi1();
// 调用子类中的show办法
z1.show();
}
}
演示作用:
method num=1
Zi num=6
Fu num=程序员那么心爱5
小贴士:Fu 类中的成员变量对错私有的,子类中能够直接拜访。若Fu 类中的笔记本电脑开机黑屏没反应怎样办成员变量私有了,子类是不能直接拜访的。通常编码时,咱们遵照封装的原则,运用安全private润饰成员变量,那么怎样拜访父类的私有成员变量呢?对!能够在父类中供给公共的getXxx办法和setXxx办法。
3.6 承继后的特征—成员办法
当类之间产生了联络,其间各类中的成员办法,又产生了哪些影响呢?
3.6.1 成员办法不重名
假定子类父类中呈现不重名安全期是哪几天的成员办法,这程序员装逼代码时的调用是没有影响的。政策调用办法时,会先在子类中查找有没有对应的办法,若子类中存在就会实施子java编译器类java游戏中的办法,若子类中不存在就会实施父类中相应的办法。代码如下:
class Fu {
public void show() {
Sys笔记tem.out程序员那么心爱.println(安全出产法"Fu类中Java的show办法实施安全出产法");
}
}
class Zi extends Fu {
p笔记本cpu天梯图ublic void show2(java环境变量装备) {
System.笔记本电脑排名前十out.println("Zi类java模拟器中的show2办法实施");
}
}
public class Demo05 {
public static void main(Str安全期ing[] args) {
Zi z = new Zi();
//子类中没有show办法,可是能够找到父类办法去实施
z.sjava言语how();
z.show2();
}
}
3.6.2 成员办法重名
假定java编译器子类父类中呈现重名的成员办法,则创立子类政策调用该办法的时分,子类政策会优先调用自己的办法。
代码如下:
class Fu {
public voijavascriptd show() {
System.out.println("Fu show");
}
}
class Zi extends Fu {
//子类重写了父类的shojava模拟器w办法
public void show() {
System.out.println("Zi show");
}
}
public class ExtendsDemo05{
public static void main(String[] args) {
Zi z = new Zi();
// 子类中有show办法,只实施重写后的show办法
z.show()安全期计算器; // Zi show
}
}
3.7 办法重写
3.7.1 概念
办法重写 :子类中呈现与父类一模相同的办法时(回来值类型,办法名和参数列表都相同),会呈现掩盖作用,也称为重写或许复写。声明不变笔记本,从头结束。
3.7.2 运笔记本电脑排名前十用场景与事例
产生在子父类之间的联络。笔记
子类承继了父类的办法,可是子类觉得父类的这办法不足以满意自己的需求,子类从头写了一个与父类同名的办法,以便掩盖父类的该方 法。
例如:咱们界说了一个动物类代码如下:
public class Animal {
public void run(){
System.out.println("动物跑的很快!");
}
public void cry(){
System.out.println("动物都能够叫~~~");
}
}
然后界说一个猫类,猫或许认为父类cry()办法不能满意自己的程序员培训班要多少钱需求
代码如下:
public class Cat extends Animjava言语al {
public void cry(){
System.ou程序员t.println("咱们一同学猫叫,喵喵喵!喵的十分好听!");
}java环境变量装备
}
public class Test {
pu安全教育渠道blic s程序员一分钟毛遂自荐tatic void main(String[] args) {
// 创立子类政策
Cat ddm = new Cat();
// 调用父类安全教育渠道登录继安全教育渠道登录承而来的办法
ddm.run();
// 调用子类重写的办法
ddm.cry(程序员);
}
}
3.7.2 @Override重写注解
-
@Override:注解,重写注解校验!
-
这个注解标记的办法,就程序员计算器阐明笔记这个办法有必要是重写父类的办法,否则编译阶段报错。
-
主张重写都加上这个注程序员客栈解,一方面能够行进代码的可读性,一方面能够避免重写出错!
加上后的子类代码办法如下:
public class Cat程序员 extends Animal { // 声明不变,从头结束 // 办法称谓与父类全部相笔记本cpu天梯图同,仅仅办法体中的功用重写写了! @Overrjava面试题ide public void cry(){ System.out.println安全出产法("咱们一同学猫叫,喵喵喵!喵的十分好听!"); } }
3.7.3 留心事项
- 办法重写是产生在子父类之间的联络。
- 子类办法掩盖父类办法安全教育渠道登录进口,有必要要保证权限大于等于父类权限。
- 子类办法掩盖父类办法,回来值类型、函数名和参数列表都要一模相同。
3.8 承继后的特征—结构器
3.8.1 引入
当类之间产生了联络,其间各类中的结构器,又产生了哪些影响呢?
首要笔记本电脑性价比排行2020咱们要回想两个作业,结构安全期计算器器的界说格局和作用。
- 结构器的名字是与类名一起的。所以子类是无法承继父类结构安全办法的。
- 结构器的作用是初始化政策成员变量数据的。所以子类的初始化过程中,有必要先安全期实施父类的初始化动作。子类的结构办法中默许有一个
su笔记本cpu天梯图per()
,标明调用父类的结构办法,父类成员变量初始化后,才调够给子类运用。(先有爸爸,才调有儿子)
承继后子类结构器特征:子安全类全部结构器的榜首行都会先调用父类安全期的程序员那么心爱无参结构器,再实施自己
3.8.2 事例演示
按如下需求界说类:
- 人类
成员变程序员培训班要多少钱量: 名字,年岁
成员办法: 吃饭 - 学生类
成员变量: 名字,年岁,成果
成员办法: 吃饭
代java模拟器码如下安全教育渠道:
class Person {
private String name程序员培训班要多少钱;
private int agjava游戏e;
public Per程序员那么心爱son() {
System.out.println("父类无参");
}
// getter/setter省掉
}
class Student extends Person {
private double score;
public Student() {
//s程序员怎样学uper(); // 调用父类无参,默许就java模拟器存在,能够不写,有必要再安全榜首行
System.out.println("子类无参");
}
public Student(double score) {
//super(); // 调用父类无参,默许就存在,能够不写,有必要再榜首行
this.score = score;
Sys安全教育渠道tem.out.println("子类有参");
}
}
public class De程序员那么心爱mo07 {
public static void main(String[] args) {
Student s1 = new Student();
System.out.println("-------程序员需求什么学历---");
Student s2 = new Student(99.9);
}
}安全手抄报
输笔记本电脑怎样连wifi出作用:
父类笔记本电脑什么牌子好无参
子类无参
--------程序员一分钟毛遂自荐--安全
父java怎样读类无参
子类有参
3.8.3 小结
- 子类结构器实施的时分,都会在榜首行默许先调用父类无参数结构器一次。
- 子类结构器的榜首行都隐含了一个**super()**去调用父类无参数结构器,**sujava根底知识点per()**能够省掉不写。
3.9 super(…)和安全教育this(…)
3.9.1 引入
请看上节中的如下事例:
class Person {
private String name;
private int age;
public Person() {
System.out.println("父类无参");
}
// getter/setter省掉
}
class Stu安全期计算器dent extends Person {
priva程序员怎样学te double score;
public Student() {
//super(); //安全教育渠道登录 调用父类无参结构器,默许就存在,能够不写,有必要再榜首行
System.out.println("子类无参");
}
public Stjava游戏udent(double score) {
//super(); //笔记本电脑 调用父类无参结构器,默许就存在,能够不写,有必要再榜首行
this安全期计算器.score = score;
System.out.println("子类有参");
}
// getter/setter省掉
}
public class Demo07 {
public static voidjavahdxx main(String[] args) {
// 调用子类有参数结构器
Student s2安全教育 = new Student(99.9);
System.out.println(s2java怎样读.getSco安全教育r安全手抄报e(程序员计算器)); // 99.9
System.outjava怎样读.println(s2.getName()); // 输出 null
System.ou安全教育渠道t.println(s2.getAge()); // 输出 0
}
}
咱们发现,子类有参数结构器仅仅初始化了自己政策中的成员javascript变量score,java模拟器而父类中的成员变量name和age依然是没有数据的,怎样处理这个问题呢,咱们能够借助与super(…)去调用父类结构器,以便初始化承继自父类政策的name和age.
3.9.2笔记本cpu天梯图 super和this的用法格局
super和this无缺的用法如下,其间this,super访笔记本cpu天梯图问成员咱们现已触摸过了。
this.成员变量 -- 本类的
super.成员变量 -- 父类的
this.成员办法名() -- 本类的
super.成员办法名() -- 父类的
接下来咱们运用调用结构器格局:
super(...) -- 调用父类程序员培训班要多少钱的结构器,依据参数匹配招认安全期是哪几天
this(...) -- 调用本类的其他结构器,依据参数匹配招认
3.9.3 super(….)用法演示
代码如下:
clas程序员s Person {
private String name ="凤姐";
private int age = 20;
public Person() {
SystJavaem.笔记本电脑开机黑屏没反应怎样办ou程序员t.println("父类无参");
}
public Person(S程序员那么心爱tring name , int age){
this.java怎样读name = name ;
this.age = age ;
}
// getter/setter省掉
}
class Student exten笔记本ds Person {
private double score = 100;
public Student() {
//super(); // 调用父类无参结构器,默许就存在,能够不写,有必要再榜首行
System.out.println("子类无参");
}
public Student(String name , int age,double score) {
super(name ,age);// 调用父类有参结构器Person(String name , int age)初始化name和age
this.score = score;
System.out.pri笔记本电脑开不了机ntln("子笔记本电脑类有参");
}
// getter/setter省掉
}
public class笔记本电脑 Demo安全教育渠道登录进口07 {
pub安全lic static void main(String[] args) {
// 调用子类有参数结构器
Student s2 = new Student("张三",20,99);
System.out.println(s2.getScoJavare()); // 99
System.out.println(s2.getName()); // 输出 张三
System.out.println(s2.ge程序员一分钟毛遂自荐tAge()); // 输出 20
}
}
留心:
子类的每个结构办法中均有默许的s程序员客栈uper(),调用父类的空参结构。手动调用父类结构会掩盖默许的super()。Java
super() 和 this() 都有必要是在结构办法的榜首行,所以不能一同呈现。
supe程序员客栈r(..)是依据参数去供认调用父类哪个结构器的。
3.9.4 super(…)事例图解
父类空间优先于子类政策产生
在每次创立子类政策时,先初始化父类空间,再创立其子类政策笔记本电脑开机黑屏没反应怎样办本身。意图在于子类政策中包含了其对应的父类空间,便能够包含其java编译器父类的成员,假定父类java面试题成员非private润饰,则子类能够随意运用父类成员。代码体现在子类的结构七调用时,必定先调用父类笔记本电脑开机黑屏没反应怎样办的结构程序员需求什么学历器。了解图解如下:
3.9.5 this(…)用法演示
this(…)
- 默许是去找本类中的其他结构器,依据参数来供认详细调用哪一个结构器。
- 为了借用其他结构器的功用。
package com.ithjava言语eima._08this和su笔记本per调用结构器;
/**
* this(...):
* 默许是去找本类中的其他结构器,依据参数来供认详细调用哪一个结构器。
* 为了借用其他结构器的功用。
*
*/
public class ThisDemo01 {
pjava环境变量装备ublic static voijavahdxxd main(String[] args) {
Student xuGan = new Student();
System.out.println(xuGan.getNa程序员怎样学me()); // 输出:徐干
System.out.print安全教育渠道登录ln(xuGan.getAge());// 输出:21
System.out.println(xuGan.getSex());// 输出: 男
}
}
class Student{
private String name ;
private int age ;
private cha安全教育渠道登录进口r sex ;
public Student() {
// 很弱,我的兄弟很牛逼啊,我能够调用其他结构器:Student(Strin程序员计算器g name, int age, char sex)
this("徐干",21,'男');
}
public Student(String name, int age, char sex) {
this.name = name ;
this.age = age ;
this.sex = sex ;
}
public String getName() {
return name;
}
public void setName(S笔记本电脑tring n安全教育ame) {
this.name = name;
}
public int getAge() {
return age;
}
p笔记本电脑开机黑屏没反应怎样办ublic void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
3.9.6 小结
-
子类的每个结程序员培训班要多少钱构办法中均有java游戏默许的super(),调用父类的空参结构。手动调用父类结构会掩盖Java默许的super()程序员需求什么学历。
-
super() 和 this() 都有必要是在结构办法的榜首行,所以不能一同呈现。
-
super(..)和this(…)是依据参数去供认调用父类哪个结构器的。
-
super(..java怎样读)能够调用父类结构器初始化承继自父类的成员变量的数据。
-
this(..)能够调用本类中的其他结构器。
3.安全期10 承继的特征
- Java只支撑单承继,不支撑多承继。
/java言语/ 一个程序员怎样学类只能有一个父类,不能够有多个父类。
class A {}
class B {}
class C1 extends A {} // ok
// class C2 extends A, B {} // error
- 一个程序员客栈类能够有多个子类。
// A能够有多个程序员怎样学子类
clas程序员客栈s A {}
class安全教育渠道登录 C1 extends A {}
class C2 extends A {}
- 能够多层承继。
class A {}
class C1 extends A {}
class D extends C1 {}
顶层父类是Object类。全部的类默许承继Object,作为父类。
第四章 引证类型运用小结(要害)
实践的开发中,引证笔记本电脑性价比排行2020类型的运用十分重要,也是十分遍及的。咱们程序员是做什么的能够在了解底子类型的运用办法根底上,进一步去掌握引证类型的运用办法。底子类型能够作为成员变量、作为办法的参数、作为办法的回来值,那么当然引证类型也是能够的。在这咱们运用两个比方 ,程序员培训班要多少钱 来学习一下。
4.1 引证类型作为办法参数和回来值
pubjava游戏lic class Person{
public void eat(){
Sy安全期stem.out.println("吃饭");
}
}
public class Test{
public static void ma安全出产法in(安全教育渠道登录String[] args){
method(new Person());
Person p = createPerson();
}
//引证java游戏类型作为办法java游戏参数,在前面笔记本事例中咱们也运用了接口类型作为办法参数
pubic static void method笔记本电脑开不了机(Person p){
p.eat();
}
//引证类型作为回来安全教育渠道值
pub安全lic static Person createPerson(){
return new Person();
}
}
4.2 引证类型作为成员变量
咱们每个人(Person)都有一个身份证(IDCard)程序员薪酬一般多少 , 为了标明这种联络 , 就需求在Person中界说一个IDCard的成员变量。定程序员是做什么的义Person类时,代码如下:
class Person {
String name;java环境变量装备//名字
i笔记nt age;//年岁
}
运用安全期计算器运用String
类型标明名字 , int
类型标明年岁。其实,String
本身便是引证类型,咱们往往疏忽了它是引证类型。假定咱们持续丰富这个类的界说,给Pe笔记本电脑rson
添加身份证号 , 身份证签发机关等特征,咱们将怎样编写呢?这时分就需求编写一个IDCa笔记rd类了
界说IDCard(身份证)类,添加身份证号 , 签发地等特征:
class IDC程序员薪酬一般多少ard {
String idN安全期是哪几天um;//身份证号
String authority;//签发地
//getter和setter办法
//...
//toString办法
//...程序员计算器
}
批改Person类:
pu安全期blic class Person {安全
String name;//名字
int age;//年岁
IDCard idCard;//标明自己的身份证信息
//name和age的getter、setter办法
//...
public笔记本电脑怎样连wifi IDCard getIdCard() {
return idCard;
}
public void setIdCard(IDCard idCard) {
this笔记.idCard = idCard;
}
@Ov安全期erride安全手抄报
pub安全手抄报lic String toString() {
return "Person{" +
"笔记本电脑怎样连wifiname='" + name + ''' +
", age=" + age +
"安全教育渠道登录进口, idCard=" + idCard +
'}';
}
}
检验类:
publiJavac class TestDjava怎样读emo {
public static void main(String[] args) {
//创立IDCard政策
IDCard idCard = new IDCard(安全手抄报);
//设置身份证号
idC程序员计算器ard.setI程序员培训班要多少钱dNum("110113201606066666");
//设置签发地
idCard.setAuthority("北京市顺义区公安局");
//创立Perso安全手抄报n政策
P程序员薪酬一般多少erson p = new Person();
//设置名字
p.setName("小顺子");
//设置年岁
p.setAge(2);
//设置身份证信息
p.setIdCard(idCard);
//打印小Java顺子的程序员计算器信息
System.out.println(p);
}
}
输出作用:
Person{na程序员客栈me='小顺子', age=2, i程序员需求什么学历dCard=IDCard{idjava游戏Num='110113201606066安全666', authority='北京市顺义区公安局'}}
类作为成员变量时,对它进行赋值的操作,实践上,是赋给它该类的一个政策。安全同理 , 接口也是如此 , 例如咱们笔记本事例中运用usb安全期是哪几天设备。在此咱们仅仅经过小比方 , 让咱们熟识下引证类型的用法 , 后续在咱们的作业班学习中 , 这种办法会运用的许多。