面向对象方法

面向对象三大特征之继承

我是研究僧i 提交于 2020-02-18 21:37:27
继承 ; A extends B; 就代表A继承了B; B类作为一个父类, A类作为一个子类; ​定义: 子类继承父类的属性和方法;子类可拥有自己独有的属性和方法; package com.lv.ext; //生物 public class Organisa { String name; public void huozhe(){ } } package com.lv.ext; //动物 //Animal extends Organisa 动物类继承生物类 //构造函数不能继承 public class Animal extends Organisa { //私有的属性 private int number; //私有的方法 private void test(){ } public Animal(){ System.out.println("这个是Animal的构造方法"); } public Animal(String name){ this.name=name; System.out.println("这个是Animal带参数的构造函数"); } public void eat(){ } public void sleep(){ } } package com.lv.ext; //蛇 public class Snake extends Animal { /

JAVA面向对象 - 封装

我与影子孤独终老i 提交于 2020-02-17 05:08:33
抽象 去定义一个类的时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板)。这种研究问题的方法称为抽象。 修饰符 Java提供四种访问控制修饰符号控制方法和变量的访问权限: Ⅰ.公开级别:用pubilc修饰,对外公开 Ⅱ.受保护级别:用protected修饰,对子类和同一个包中的类公开 Ⅲ.默认级别:没有修饰符号,向同一个包的类公开 Ⅳ.私有级别:用private修饰,只有类本身可以访问,不对外公开 访问级别 访问控制修饰符 同类 同包 子类 不同包 公开 public √ √ √ √ 受保护 protected √ √ √ × 默认 没有修饰符 √ √ × × 私有 private √ × × × 封装 封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。 1 public class C { 2 public static void main(String[] args){ 3 Clerk clerk1 = new Clerk("小花",22,4500.57f); 4 System.out.println("名字是:" + clerk1.name + "\n年龄:" + clerk1.getAge() + "\n薪水:" + clerk1.getSalary()); 5 }

java面向对象之封装

末鹿安然 提交于 2020-02-17 04:23:41
1.什么叫封装? 封装是指将抽象性函式接口的实现细节隐藏起来。 2.为什么要封装? 为了防止该代码和数据被外部类定义的代码随机访问。 3如何封装? 实现封装步骤 1.声明属性的可见性为 private(私有) public class Student { private String name ; private int age ; } 属性设为私有的,只有本类才能访问,这样就对信息进行了隐藏。 那么肯定有人要问把信息隐藏了我想要看到数据怎么办?各位客官稍安勿躁… 2.每个属性提供对外的公共访问方法,这样就可以私有属性进行访问了 public class Student { private String name ; private int age ; public String getName ( ) { return name ; } public int getAge ( ) { return age ; } public void setName ( String name ) { this . name = name ; } public void setAge ( int age ) { this . age = age ; } } 实例中public方法是外部类访问该类成员变量的入口: getxxx—可以访问数据 setxxx—可以进行赋值 public class

面向对象程序设计寒假作业3

大城市里の小女人 提交于 2020-02-16 21:56:46
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10288 这个作业的目标 1.继续完成作业二的编程题。 2.优化架构,思考代码的拓展性 3.或者扩大数字范围,支持负数 4.编译代码 5.测试代码 6.作业上传仓库 作业正文 https://www.cnblogs.com/Sweetxinxin/p/12316634.html 其他参考文献 https://www.cnblogs.com/sddai/p/10249243.html https://www.cnblogs.com/hclw/p/9560442.html https://wenda.so.com/q/1365038777067506 仓库地址 https://github.com/Sweetxinxin/winter-vocation-homework-3 Part 1 第二次作业完善 a.编译脚本 经过询问同学查找资料第二次作业得到了有效解决 关于编译脚本的路径问题,通过配置gcc环境及在控制面板中找到高级选项环境变量的path中添加gcc的路径 找到名为ComSpec的系统变量,查看是否是 :“%SystemRoot%

面向对象

僤鯓⒐⒋嵵緔 提交于 2020-02-16 16:31:18
面向对象 封装 一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法 封装的优点 良好的封装能够减少耦合 类内部的结构可以自由修改 可以对成员变量进行更精确的控制 隐藏信息,实现细节 实现方式:属性私有+ setter()/getter() 继承 子类继承父类的特征和行为,继承是面向对象的基石 java 不支持多继承,实现接口可视为弱继承 非私有、静态的属性和方法属于类,不能被继承,但能用子类名访问 非私有、非静态的属性和方法可以被继承 父类的私有属性 子类具有拥有权,但是不具有使用权 可以使用父类继承来的 setter/getter 方法,访问该属性 构造方法不能被继承,在继承中 父类没有定义构造方法或定义了无参数的构造方法,子类不须要定义构造方法 父类只有带参数的构造方法时,子类也不能有无参构造,必须定义带参构造,且要在第一行通过 super 显式调用父类构造方法 final 修饰的成员 final 修饰的属性可以被继承 final 修饰的方法可以被继承,不能被重写 分析内存后发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后在父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象 所以,子类继承了父类的所有属性和方法或子类拥有父类的所有属性和方法是对的,只不过父类的私有属性和方法,子类是无法直接访到的,这也是

Day_04 面向对象

感情迁移 提交于 2020-02-16 01:25:02
概述 对于面向对象编程的支持,Go语言设计得非常简洁而优雅。因为,Go语言并没有沿袭传统 面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继承)、 虚函数、构造函数和析构函数、隐藏的this指针等等 尽管Go语言中没有封装、继承、多态这些概念,但同样通过别的方式实现这些特性: 封装:通过方法实现 继承:通过匿名字段实现 多态:通过接口实现 接口概述: 在Go语言中,接口(interface)是一个自定义类型,接口类型具体描述了一系列方法的集合 接口类型是一种抽象的类型,它不会暴露出它所代表的对象的内部值的结构和这个对象支持的基础操作的集合, 它们只会展示出它们自己的方法。因此接口类型不能将其实例化。 Go通过接口实现了鸭子类型(duck-typing):“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子、那么这只鸟就可以被称为鸭子了” 我们并不关心对象是什么类型,到底是不是鸭子,只关心行为 01.匿名字段初始化 //匿名字段体现的是面向对象的继承特点 package main import "fmt" type Person struct { name string //名字 sex byte //性别 age int //年龄 } type Student struct { Person //只有类型,没有名字,匿名字段

Java — 面向对象的编程语言

冷暖自知 提交于 2020-02-16 00:13:35
本篇文章将对 Java 中面向对象的一些概念做出详细讨论。 一、为什么要面向对象? 老是在说面向对象,面向对象中的这个对象到底是什么呢? 1、什么是对象? 对象是人们可以进行研究的一切事物,从最简单的一支铅笔到极其复杂的航空母舰,都可以看作是对象。对象不仅仅能表示具体的事物,还能表示抽象的规则、计划或者事件等。 因此,面向对象的这个对象,指的是 客体 。所谓客体指的是 客观存在的对象实体 和 主观抽象的概念 。 客体或对象( Object )在哲学上指 可感知或可想像到的任何事物 ,既包括客观存在并可观察到的事物(如人物、树木、房屋,抽象的如物价、自由),也包括想像的事物(如神化人物)。—— 《维基百科》 2、结构化编程 最早的程序开发,使用的都是结构化(面向过程)程序设计语言。 计算机是帮助人们解决问题的,然而计算机终究是个机器,它只会按照人所写的代码,一步一步的执行下去,最终得到了结果。**结构化编程,就是按照计算机的思维写出的代码。**随着时间的推移,软件的规模逐渐扩大,业务逻辑变得越来越复杂的时候,当人再看到这些逻辑时,就无法维护和扩展了。 同时,结构化设计是以功能为目标来设计构造应用系统的,这种做法导致我们设计程序时,不得不将客体所构成的现实世界 映射 到由功能模块组成的软件系统中,这种转换过程,背离了人们观察和解决问题的基本思路。 3、面向对象编程

05.面向对象,封装,static final

倖福魔咒の 提交于 2020-02-15 22:12:44
面向对象 面向对象首先是一种思维方式的体现,其特点就是分工化操作,将功能封装起来,达到运用对象处理事务的目的。 面向对象在JAVA中的体现: 封装,继承,多态 ,组合 类与对象的关系 在JAVA中万物皆是对象,每个对象都应该是独一无二的,是一种类实例化的体现,我们将对象分类,就变成了类,类是一类对象的共性。 类:具有一定的属性,和共同特性的集合。是对对象共性的抽离。 对象:是对类模板的具体实例化。 方法:面对过过程的体现,实现功能的语句。 定义一个类:抽离对象共性,属性就是成员变量,成员方法就是能力。 创建对象: 格式 new 构造器名( [实参] ); 构造器名==类名 ( 匿名类对象,在使用的时候,可以不进行赋值,直接链式编程 new Person("张三",18).tell(); 使用一次就会成为垃圾。 ) 格式 : xx类 变量 = new xx类名 ([实参]); 构建对象并接收对象; 类是对象的类型 , 对象是类的实例,一个类可以创建N多个对象; 小问题:如果一个不同包下有同名的类,请使用包名加类名调用,不同包先导包。包名加类名是唯一身份标识. 封装 封装:封装是为了防止,类中数据被外界访问,被篡改。提高程序的安全性,隐藏内部“细节”,提供对外操作的“接口”。 对内部数据进行保护的同时 , 还可以自定义设置对象属性值。 首先如何封装一个标准类,类是多个具有同样属性的聚合

面向对象的特征

回眸只為那壹抹淺笑 提交于 2020-02-15 20:15:45
三大特征是:封装、继承和多态。   封装是指将某事物的 属性和行为 包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。   protected在同包内的类及包外的子类能访问   继承是 子对象可以继承父对象的属性和行为 ,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。这非常类似大自然中的物种遗传。   多态不是很好解释:更倾向于使用java中的固定用法,即overriding(重写)和overload(重载)。多态则是体现在overriding(重写)上,而overload(重载)则不属于面向对象中多态的范畴,因为overload(重载)概念在非面向对象中也存在。overriding(重写)是面向对象中的多态,因为overriding(重写)是与继承紧密联系,是面向对象所特有的。 多态是指父对象中的同一个行为能在其多个子对象中有不同的表现 。也就是说子对象可以使用重写父对象中的行为,使其拥有不同于父对象和其它子对象的表现,这就是overriding(重写)。   多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。

Java面向对象[方法]

可紊 提交于 2020-02-15 06:14:47
方法是类和对象的行为特征的抽象,Java中的方法与传统的函数非常相似又有着显著的不同,在结构化语言中函数是最小单位,整个软件由一个一个函数组成;在面向对象语言中,类是最小单位,整个系统由一个一个类组成,在java中方法不能独立存在,必须属于类或者对象。 方法必须属于类或者对象 如果要定义方法,则只能在类体内定义,不能独立定义方法,如果类中的方法由static修饰,那么这个方法属于这个类,否则该方法属于这个类的实例 Java语言是静态的,一个类定义完成后,只要不再重新编译这个类文件,该类和类的对象所拥有的方法是固定的,永远都不会改变 方法不能独立定义,也不能独立执行,它的调用方式必须是【类.方法】【对象.方法】 同一个类中的一个方法调用另一个方法时,如果被调用的是普通方法,则默认使用this作为调用者,如果被调用的方法是静态方法,则默认使用类作为调用者,表面上看是独立执行,但实际上只是隐藏了主调 需要注意的是static修饰的方法既可以使用类作为调用者,也可以使用对象作为调用者来调用,但static修饰的方法属于类,虽然使用类的对象调用static修饰的方法能够得到相同的执行结果,但那是因为底层依然是使用这些实例所属的类作为调用者,执行虽然不会报异常,但并不支持这么写程序 Java方法的参数传递机制 如果声明方法的时候指定了形参,那么调用方法时必须给这些形参指定参数值