java面向对象 - 封装、继承和多态的综合练习 @tojava面向对象 - 封装、继承和多态的综合练习c 第一题- `package case1;import java.util.Scanner;public class Task1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String dogName = sc.next();String dogSex = sc.next();String dogColor = sc.next();String catName = sc.next();String catSex = sc.next();double catWeight = sc.nextDouble()...
封装该露的露,该藏的藏 我们程序设计要追求**“高内聚,低耦合”***。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏) 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。 记住这句话:属性私有(private),get/set //类 private:私有 public class Student {//属性私有private String name; //名字private int ...
继承 面向对象三大特征之一。可使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 关于继承中变量访问特点 在方法中使用变量,首先去方法内部找,没有则去本类成员内部去找,若也没有,则会去父类成员位置去找 (观察三段代码不同) package smile; public class main1 {public static void main(String []args) {Zi z=new Zi();z.show();} } class Fu{public int age=40; } class Zi extends Fu{public ...
1、定义Person类和Student类,如果想要Student继承Person类的属性/方法,需要将 class Student(){}写成 class Student extends Person(){}; 2、当Person中定义了private的属性,则Student继承后也无法直接访问;需要class Person(){} 里提供get和set方法;相当于 Student可以继承Person中的属性/方法,但无法直接用Person中的属性,需要Student提供get/set方法(继承时,被调用的为私有的时相当于 保险箱里有钱,但需要通过努力或方...
继承的概述: 继承:让类与类之间产生关系(子父类关系),子类可以直接使用父类中的非私有成员继承的格式: public class 类名 extends 父类名 例:public class Zi extends Fu()结论: 父类当中私有的成员变量,如果提供setXXX/getXXX方法, 子类是可以通过set/get方法访问成员变量的继承的好处: 提高了代码的复用性,提高了代码的维护性,**让类与类之间产生了关系是多态的前提**继承的弊端: 继承是侵入性的。 降低了代码的灵...
java的三大特性 Java语言的三大特性即是:封装、继承、多态 首先先简单的说一下其3大特性的定义: 封装: 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。将抽象得到的数据和行为(或功能...
1、Animal(动物类-父类) package cn.nnxy.animal;public class Animal {private String name;private Integer legNum;public void shout() {System.out.print(name + "有" + legNum + "条腿" + "叫声");}public Animal(String name,Integer legNum) {setName(name);setLegNum(legNum);}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getLegNum() {return legNum;}...
Java(五):继承 & 接口 1. 章节简介1.1 课程简介1.2 本章知识要点 2. 答案 & 代码3. 免责声明 1. 章节简介 1.1 课程简介 这个系列的文章,我会把我在RIT学习的CS研究生相关课程作业分享在这里,希望能帮助有需要的童鞋。 课程名称:CSCI.605.04 - Adv OO Programming Concepts(前置课程) 任课老师:Hans-Peter Bischof作业链接:传送门 本章学习笔记:传送门 学习建议:本章学习的内容都需要掌握; ※ 注意:本系列的文章大部分...
Java-面向对象 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV12J41137hu?p=1 学习资料:Java 菜鸟教程 – https://www.runoob.com/java/java-tutorial.html 1、面向对象 & 面向过程 面向过程 步骤清晰简单,第一步做什么,第二步做什么… 就像是你今天中午要炒菜,炒一个鸡蛋西红柿,第一步,洗西红柿,切西红柿,第二步打鸡蛋,第三步放点盐,第四步,开火,放油… 一步一步来。 面向过程去处理这种一系列较为简...
第一时间获取技术干货和业界资讯!昨天太忙,回来的很晚。很多人私信我,我在睡前都一一回应了。今天由于比较匆忙,就把很久之前写的文章推荐给大家! 最近看了 Github 上很火的项目,star 超过了 vue。就想看看 github 的 star 排行榜,看完之后,我突然想到能不能看看 stackoverflow 上的排行榜。做一些翻译也很不错! 在打开 stackoverflow 的时候,突然看到一个很稀奇的问题。为什么Java中的Collection类都继承了抽象类还要实现...
要实现的目标:鸟(Bird)和狼(Wolf)都是动物(Animal),动物都有心跳(beat()),会呼吸(breath()),但是鸟会fly(fly()),狼会奔跑(run()),用Java程序实现以上描述。 InheritTest.java 使用继承方式实现目标 CompositeTest.java 使用组合方式实现目标 //InheritTest.java 使用继承方式实现目标 class Animal{ private void beat(){ System.out.println("心脏跳动..."); } public void breath(){ beat(); System...
关于java中继承机制的一些猜想前言 Java作为当下热门的语言之一,拥有着面向对象的强大特性,其不仅吸收了C++语言的各种优点,还摒弃了C++中难以理解的多继承(改为了多层继承)和指针,方便了我们将现实生活中的事物,通过类的概念进行表达出来,其核心有三大特点,封装,继承,多态,今天我就来谈一谈我对java继承的一些浅显理解. 问题 java中继承这一特点,大大方便了我们编写代码,提高了代码的复用性,以及维护性,同时他也是多态的前提....
参考视频:bilibili遇见狂神说 2、继承 ①、基本概念 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。extends的意思是“扩展”,子类是父类的扩展。Java中类只有单继承,没有多继承。一个儿子只能有一个爸爸,但一个爸爸可以有多个儿子。 package 面向对象OOP.继承;//人类 public class Person { }package 面向对象OOP.继承;//老师是人,作为子类(派生类),继承人类 public class Teacher extends Person { }packa...
继承关系中类成员的使用 继承关系中子父类成员变量的使用 需求:子父类中定义了同名的成员变量,如何使用? 分析 A:子类中定义成员变量int price,默认值为10B:父类中定义成员变量int price,默认值为20C:子类成员方法中定义局部变量int price,值为5D:在子类成员方法中分别输出三个price的值 图解代码演示 //父类 public class Fu {int num = 30; }//子类 public class Zi extends Fu {int num = 20;public void show() {int ...
2.7 构造方法 构造方法作用 创建一个类的对象,并给对象的数据进行初始化 构造方法格式 方法名与类名相同; 没有返回值类型,连void都没有,没有具体的返回值。public class Student { public Student() {System.out.println("这是构造方法");} }public class StudentDemo {public static void main(String[] args) {//如何调用构造方法呢?//通过new关键字调用//格式:类名 对象名 = new 构造方法(...);Student s = new Student();...