构造方法

python3.5--8面向对象

你。 提交于 2019-11-27 08:08:34
面向对象 面向对象基本术语 ▶类:用来描述具有相同属性和方法的对象的集合。类定义了集合中每个对象共有的属性和方法。对象是类的实例。 ▶类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中,且在方法之外。类变量通常不作为实例变量使用。 ▶实例变量:定义在方法中的变量,只作用于当前实例的类。 ▶数据成员:类变量或者实例变量用于处理类及实例对象的相关数据。 ▶方法重写:如果从父类集成的方法不能满足子类的需求,就可以对其进行改写,这个过程称为方法的覆盖(override)。 ▶多态(Polymorphism):对不同类的对象使用同样的操作。 ▶封装(Encapsulation):对外部世界隐藏对象的工作细节。 ▶继承(Inheritance):即一个派生类(derived class) 继承基类(base class) 的字段和方法。继承允许吧一个派生类的对象座位一个基类对象对待,以普通类为基础建立专门的类对象。 ▶实例化(Instance):创建一个类的实例、类的具体对象。 ▶方法:类中定义的函数。 ▶对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 类的使用 class MyClass(object): i=123 def f(self): #定义类的方法时,第一个参数必须为self,除了self不用传入,其他参数正常传入 return

javaIO——PipedReader & PipedWriter

久未见 提交于 2019-11-27 07:30:29
  1. 概述:     PipedReader 和 PipedWriter,意为管道读写流。所谓管道,那就是有进有出,所以这也是它们跟其它流对象最显著的区别:PipedReader和PipedWriter必须成对使用才有意义。   2. 角色扮演:     PipedWriter 扮演生产者的角色,将字符数据写入到管道;PipedReader扮演消费者的角色,负责将数据从管道取出消费掉。   3. 数据结构:     要实现一个管道,至少需要三个要素:一个线性存储结构、一个写入位置标记、一个读取位置标记。java中把这三个要素放在了PipedReader中:          从代码注释可以看出,buffer[] 就是存储数据的线性结构、in 是写入的位置标记、out是读取的位置标记。"The circular buffer" 说明buffer数组是循环使用,那么肯定会牵涉到数据覆盖的问题,后文中会讲到怎么解决。注释中还说: in<0 表示管道为空(没有数据),in==out 表示管道满了。   4. 构造:     4.1. PipedWriter有两个构造方法,一个无参构造方法,一个带有一个PipedReader对象的构造方法。使用前者时只是单单构造一个Writer对象,没有建立连接,需要后续手动调用connect方法建立连接才能write数据

java基础篇笔记18

一曲冷凌霜 提交于 2019-11-27 07:14:17
java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 File类:文件和目录路径名的抽象表示形式。 java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行以下操作: 创建一个文件/文件夹 删除文件/文件夹 获取文件/文件夹 判断文件/文件夹是否存在 对文件夹进行遍历 获取文件的大小 File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法。 重点,记住三个单词: file:文件 ; directory:文件夹 ; path:路径 路径分隔符 Windows是分号; Linux系统是冒号: 名称分隔符 Windows是反斜杠\ Linux系统是斜杠/ 对于操作路径,不能写死,所以可以使用separator (分隔符) 例如:C:\develop\a\a.txt 应写作:“C:”+File.separator+“develop”+File.separator+“a”+File.separator+“a.txt” 绝对路径:从盘符开始的路径,这是一个完整的路径。 c:\a.txt 相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。 c:\demo\b.txt 简化为->b.txt 相对指的是相对于当前项目的根目录 如果使用当前项目的根目录,路径可以简化书写 注意

Java基础笔记五 面向对象

為{幸葍}努か 提交于 2019-11-27 05:49:54
5. 面向对象 5.1. 面向对象的简介 面向过程 是一种看待问题、解决问题的思维方式。着眼点在于,问题是怎样一步步的解决的,然后亲力亲为的去解决这个问题。 面向对象 是一种看待问题、解决问题的思维方式。着眼点在于,找到一个能够帮助解决问题的实体,然后委托这个实体帮助解决问题。 Java是一种面向对象的语言。 可以使用Java这门编程语言,更容易的写出具有面向对象编程思想的代码。 Java是一种面向对象的语言,因此用Java写的程序一定是面向对象的程序。 5.2. 类的设计与对象的实例化 对象 : 可以帮助解决问题的实体,就是一个对象。 万物皆对象 类 : 是由若干个具有相同的特征和行为的对象组成的一个集合。 类和对象的关系 : 类是对象的集合 , 对象是类的个体 备注: 在程序设计中,一定是现有的类,再有的对象。 5.2.1. 类的设计 语法 [ 访问权限修饰符 ] class 类名 { // 类体 // 类的所有的对象共有的特征 // 类的所有的对象共有的行为 } 语法说明: 1. 类名: 是一个标识符, 遵循大驼峰命名法。 2. 特征: 又叫属性, 在类中的体现是一个全局变量。 3. 行为: 在类中的体现,是一个方法。 类是一种自定义的数据类型 5.2.2. 对象的实例化 对象的实例化,需要使用到关键字new,也就是说,类是一种自定义的引用数据类型。 5.3. 构造方法

Java 常用API(二)

那年仲夏 提交于 2019-11-27 05:47:29
目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar类 5. System类 6. StringBuilder类 String类的原理 StringBuilder类的原理 StringBuilder的构造方法 StringBuilder的常用方法 7. 包装类 概述 装箱与拆箱(以 int 类型为例) 自动装箱与自动拆箱 基本类型与字符串类型之间的相互转换 Java 常用API(二) 1. Object类 Object类位于 java.lang.Object 包下。 类Object是类层次结构的 根类(父类) 。 每个类都使用Object类作为超类(父类)。 所有对象(包括数组)都实现了这个类的方法。 public String toString():返回该对象的字符串表示。 public boolean equals(Object obj): 指示其他某个对象是否与此对象“相等”。 注意事项: 看一个类是否重写了 toString方法,直接打印这个 类的对象 即可。 如果没有重写 toString方法,那么打印的是对象的 地址值 。 Random类没有重写 toString方法 Scanner、ArrayList <E> 类重写了

java之封装

那年仲夏 提交于 2019-11-27 04:39:19
1.1 封装 1.1.1 封装体现 1.方法就是一个封装体。 2.关键字private也是一种封装。 1.1.2 封装的含义 封装 : 把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的成员方法才能对数据进行操作。 1.1.3 封装的好处 1 提高了代码的复用性。 2 隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用。 3 提高了安全性。 1.1.4 private关键字 private只能修饰成员变量,不能修饰局部变量。被private修饰的成员只能在本类中使用,对于非本类的提供公共的访问方式;这种方式被称为方法。此做法的目的(1)为了保护数据;(2)可以筛选不合理的值;比如年龄设置为int,负数也可以被输出;有了方法就可以增加约束条件。 定义方法设置值必须以set开头,取值必须以get开头。 public class Person { //成员变量 private String name; private int age; //设置值 public void setName(String a) { name=a; } public void setAge(int b) { //给年龄增加条件 if(b>0&&b<100){ age=b; }else { System.out.println("输入不合理"); } }

Java 方法

廉价感情. 提交于 2019-11-27 02:16:19
我们经常使用到 System.out.println() ,那么它是什么呢? println() 是一个方法。 System 是系统类。 out 是标准输出对象。 这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。 那么什么是方法呢? Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的优点 1. 使程序变得更简短而清晰。 2. 有利于程序维护。 3. 可以提高程序开发的效率。 4. 提高了代码的重用性。 方法的命名规则 1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如: addPerson。 2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是: test<MethodUnderTest>_<state>,例如 testPop_emptyStack。 方法的定义 一般情况下,定义一个方法包含以下语法: 修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; } 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型

转换流

自古美人都是妖i 提交于 2019-11-27 01:33:46
转换流 我们要读取的文件aa.txt采用的是GBK的编码方式。 ​ FileReader这个流是采用Idea默认的编码方式进行读取(UTF-8)。 ​ 两种编码不一致,那么就引发了乱码问题。 ​ 如果想要读取GBK编码的文件,我们可以指定一个编码方式去读取。 ​ 使用转换流,可以指定编码进行读取。 public class Demo01FileReader { public static void main ( String [ ] args ) throws IOException { //创建FileReader对象 Reader r = new FileReader ( "d:\\aa.txt" ) ; //开始读取,一次读取一个字符 int i ; while ( ( i = r . read ( ) ) != - 1 ) { //输出 System . out . print ( ( char ) i ) ; } //关流 r . close ( ) ; } } InputStreamReader InputStreamReader是转换流, 可以指定编码读取数据, 可以将文件中的数据读取到Java程序中。 InputStreamReader的构造方法: InputStreamReader(InputStream in):参数要传递字节输入流。

【M25】将构造方法和非成员方法虚化

痴心易碎 提交于 2019-11-27 01:30:39
1、所谓虚化,就是根据引用或者指针的真实类型,决定调用哪个方法。 2、构造方法虚化,就是根据引用(或者指针)的真实类型,构造出一个对象,如果指针的真实类型是Base,返回Base*;如果指针的真实类型是Derived,返回Derived*。解决办法是:Base定义一个virtual方法Clone,调用new Base(*this),返回Base*;Derived重写Clone方法,调用new Derived(*this),返回Derived*。注意:一般情况下,子类重写父类方法,要求返回类型必须一致。目前,父类返回Base*,子类重写可以返回Derived*,也就是说C++支持协变。(口诀:进去叛逆,出来和谐) 3、将非成员方法虚化,考虑output操作符<<的虚化。C++的多态是动态单分派,只会根据方法拥有者的真实类型决定调用哪个方法,因此要让<<虚化,需要在Base中定义方法virtual ostream& operator<<(ostream& str) ; 但是,这种情况下,要b<<cout这样写,这显然不符合常规。那该怎么办?   使用非成员方法ostream& operator<< (ostream& s, const Base& b); 在该方法中调用虚方法b.print(s); 转载于:https://www.cnblogs.com/nzbbody/p

C++ 构造过程和析构过程

左心房为你撑大大i 提交于 2019-11-27 01:30:06
1、C++构造和析构的过程,类似于穿衣脱衣的过程。穿衣是:先穿内衣,再穿外套。脱衣是:先脱外套,再脱内衣。C++构造过程:首先调用父类构造方法,再调用子类构造方法。C++析构过程:首先调用子类析构方法,再调用父类析构方法。 2、子类不能继承父类的构造方法和析构方法,除此之外,其他的成员都能继承,包括父类的private成员,只不过子类不能访问private成员。 3、思考一下,为什么子类不能继承父类的构造方法?   想一想,构造方法是干什么的?构造方法是初始化对象的成分,创建对象。从语义上讲,父类构造方法初始化父类成分,构造父类对象。子类构造方法在父类对象的基础上,初始化子类专有成分,构造子类对象。如果子类继承父类构造方法,那么子类暴露一个接口,返回父类对象,这显然不合理。因此,子类不能继承父类的构造方法。 4、父类的成分只能在父类构造方法中初始化,子类只能初始化自己的专有成分,不能初始化父类的成分,可以在方法内赋值。子类如果初始化父类成分,编译报错:非法的成员初始化,不是基或成员。那么问题来了,子类没有继承父类的构造方法,那么子类如何初始化父类的成分呢? 5、子类不能继承父类的构造方法,但是可以调用父类的构造方法,而且必须调用父类的构造方法,确保父类成分初始化。如果没有显示调用父类的构造方法,会隐式调用父类的default构造方法。子类没有显式调用父类构造方法