构造方法

面向对象三大特性之--封装

主宰稳场 提交于 2020-01-03 20:01:07
1.定义 将内容封装到某个地方,以后再去调用被封装在某处的内容。 2.方法 在使用面向对象的封装特性时,需要 把对象和属性捆绑在一起 ,并且可以调用对象的属性内容; (1)构造方法 *** ——init —— (self) *** :构造函数,自动执行构造方法里的内容; 构造方法在对象创建出来后执行; #构造方法:__init__(self) #创建类 class student : def __init__ ( self ) : #构造函数,在创建出对象后执行 #self:是实例化出的对象,系统自动将实例化出的对象传递给构造方法 print ( 'self:' , self ) print ( '正在运行构造函数' ) #实例化 stu1 = student ( ) print ( 'stu1:' , stu1 ) 结果 self : < __main__ . student object at 0x00000196FB22D748 > 正在运行构造函数 stu1 : < __main__ . student object at 0x00000196FB22D748 > (2)调用封装的属性信息 对象名.属性名 self.属性名 self.方法名() #定义类 class Student : #定义属性 def __init__ ( self , name , score1 ,

Python面向对象编程的三大特性

為{幸葍}努か 提交于 2020-01-03 19:26:02
面向对象编程的三大特性 面向对象的三大特性是指:封装、继承和多态 01对象和类 类(Class) 是现实或思维世界中的实体在计算机中的反映,它将数据以及这些 数据上的操作封装在一起。 对象(Object) 是具有类类型的变量。类和对象是面向对象编程技术中的最基本 的概念。 如何定义类? class 类(): pass 如何将类转换成对象? 实例化 是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概 念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = 类名(参数1,参数2…参数n)构成 类(Class) 是是创建实例的模板 对象(Object) 是一个一个具体的实例 # class 类名称: 定义类的方式 class Person : # 占位关键字, 什么也不做 pass print ( Person ) # <class '__main__.Person'> 存储于当前脚本的Person类 # 对象:将类实例化/具体化产生的值 personObj = Person ( ) # <__main__.Person object at 0x7f28164b04d0> # 当前脚本的Person类实例化出来的对象存储的内存地址是0x7f28164b04d0 print ( personObj ) Python中自带的类有: from datetime

学习Java的第八天

一曲冷凌霜 提交于 2020-01-03 09:14:33
作业题-二维数组-构造方法 练习1(基础): (1)编写一个圆类Circle,该类拥有: ①一个成员变量 radius(私有,浮点型); // 存放圆的半径; ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) //创建Circle对象时将半径初始化为r ③ 三个成员方法 double getArea( ) //获取圆的面积 double getPerimeter( ) //获取圆的周长 void show( ) //将圆的半径、周长、面积输出到屏幕 package com . hpe . java ; public class Circle { // TODO Auto-generated method stub // 练习1(基础): // (1)编写一个圆类Circle,该类拥有: // ①一个成员变量 // radius(私有,浮点型); // 存放圆的半径; // ②两个构造方法 // Circle( ) // 将半径设为0 // Circle(double r ) //创建Circle对象时将半径初始化为r // ③ 三个成员方法 // double getArea( ) //获取圆的面积 // double getPerimeter( ) //获取圆的周长 // void show( ) //将圆的半径、周长、面积输出到屏幕

面向对象

倾然丶 夕夏残阳落幕 提交于 2020-01-03 03:40:37
一 面向 1 面向过程(C语言) 2 面向对象(java , c# , CAD , Lisp语言 , c++) 3 面向架构SOA(中央集权)+总线ESB 4 面向服务(微服务:是SOA架构最佳实践(轻 , 分而治之)) 5 面向切面AOP: 面向切面是面向对象的有益补充 面向过程和面向对象的区别 1 解析 1) 面向过程 3步 , 打开冰箱 , 放入大象 , 关门 2) 面向对象 实体(对象): 冰箱 , 大象 2 关注点不同 1) 面向过程 过程 , 过程中的每一个细节 , 更加关注结果 2) 面向对象 对象自己特征和行为 ,更加关注实体的创建 3 差异 1) 面向过程 用到什么写什么 , 思考过程 2) 面向对象 不好写 , 一旦写出来 ,修改就很少 二 类和对象 1 类 1) 特征 用class修饰 , 有方法(行为) 2) 例子 public class TestArray(){ //用class修饰 toString();//方法 } 2 对象 例子: TestArray ta = new TestArray(); ta.toString(); 3 联系 类的实例就称为对象 4 区别 1) 类 类是死的 , 类相当于图纸 2) 对象 对象是活的 , 楼 , 多个楼(实现) 三 各类型的父类 1 所有包装类型父类 Object 2 布尔类型父类 class java

IO流之OutputStream:字节输出流

丶灬走出姿态 提交于 2020-01-02 19:15:51
java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。 public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 public abstract void write(int b) :将指定的字节输出流。 java.io.FileOutputStream extends OutputStream FileOutputStream:文件字节输出流 作用:把内存中的数据写入到硬盘的文件中 构造方法: * FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。 * FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 参数:写入数据的目的 String name:目的地是一个文件的路径 File file

java类初始化,使用构造方法

蹲街弑〆低调 提交于 2020-01-02 00:38:35
public class test { /** * java类的初步学习: * 学会使用和类名相同的两种构造方法,对公共类方法的调用: */ public static void main(String[] args) { Point point = new Point(100,27); //注意:打印对象的方法 System.out.print(point); //为什么它没有调用toString方法也可以呢? //System.out.print(point.toString()); //也可以正常输出 } } class Point { private int x = 0; private int y = 0; /* * 两种构造方法: * 注意:调用自身的构造方法是用this(xxx,xxx,...)来完成,且必须位于第一行。 */ //针对两个形参 public Point(int x, int y) { this.x = x; this.y = y; } //针对两个形参 public Point(int x) { this(x, x); //一个形参时两个值相同 } public String toString() { return "(x:" + this.x + ",y:" + this.y + ")"; } } 来源: https://www.cnblogs

21.2 代码块

百般思念 提交于 2020-01-02 00:07:57
/** 代码块:即{}* 局部代码块:存在于方法中,控制变量的生命周期(作用域)*构造代码块:提取构造方法中的共性,每次创建对象都会去执行,并且执行顺序比构造方法优先*静态代码块:随着类的加载而加载,只加载一次,加载类时需要做的一些初始化,比如加载驱动(有static的特性:被所有对象共享,静态所修饰的成员加载优先于对象,随着类的加载而加载)*无参和有参之间没有先后顺序,根据调用顺序执行* */ package day21_static.代码块; public class BlockDemo { public static void main(String[] args) { { System.out.println("局部代码块"); } Teacher t = new Teacher("xiao",12); Teacher t2 = new Teacher(); } } class Teacher { String name; int age; { System.out.println("构造代码块,存在于构造方法中"); } static { System.out.println("静态代码块,加 static."); } public Teacher() { System.out.println("无参构造"); } public Teacher(String name

转转转!java继承中的this和super

守給你的承諾、 提交于 2020-01-01 15:13:50
学习java时看了不少尚学堂马士兵的视频,还是挺喜欢马士兵的讲课步骤的,二话不说,先做实例,看到的结果才是最实际的,理论神马的全是浮云。只有在实际操作过程中体会理论,在实际操作过程中升华理论才是最关键的,产生的印象才是最深的。针对文章标题,先看一下以下代码: public class FatherChild { public static void main(String[] args) { // 主方法开始 Child c = new Child(); // 实例化 } } class Father { public Father() { System.out.println( "父类无参构造函数" ); } public Father(String name) { System.out.println( "父类有参构造函数" ); } } class Child extends Father { public Child() { this ( "dd" ); System.out.println( "子类无参构造函数" ); } public Child(String name) { super ( "dd" ); System.out.println( "子类有参构造函数" ); } } 代码运行的结果: 父类有参构造函数 子类有参构造函数 子类无参构造函数

队列——数组结构实现(普通队列)

亡梦爱人 提交于 2020-01-01 13:03:02
一、队列 1. 队列的概念 队列的核心理念是: 先进先出 ; 队列是一种特殊的线性表: 它只允许在表的前端 (front) 进行删除操作,而在表的后端 (tail)进行插入操作 ; 队列和栈都是一种操作受限的线性表,其中进行插入操作的端称之为 队尾 ,进行删除操作的端称之为 队首 ; 2.队列的属性 getFront() :获取队首的元素,但不进行出队操作; getSize() :获取队列中元素的数量; isEmpty() :判断队列是否为空; enqueue() :在队尾 tail 插入元素; dequeue() :在队首 front 删除元素; 上述队列的属性抽象成接口,其代码实现如下: /** * @Author: zjtMeng * @Date: 2019/12/22 18:47 * @Version 1.0 */ public interface Queue < E > { void enqueue ( E e ) ; E dequeue ( ) ; E getFront ( ) ; int getSize ( ) ; boolean isEmpty ( ) ; } 二、普通队列 ArrayQueue 普通队列概念是:底层通过数组来实现,且通过调用 addLast() 实现入队操作,调用 removeFirst() 实现出队操作; 此部分会用到之前自己封装的数组

面试Java前必须了解的10个概念

痞子三分冷 提交于 2020-01-01 02:05:47
1、 对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 2、 继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。 (4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。 3、 关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。 4、 有关public、private和protected (1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b