构造方法

java 封装、继承和多态

谁说我不能喝 提交于 2019-11-26 22:00:53
面向对象三大特性: 封装,继承,多态 一、封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过类提供的放法来实现对隐藏信息的操作和访问 1、封装实现: (1)修改属性的可见性:设为private; (2)创建getter/setter方法:用于属性的读写; (3)在getter/setter方法中加入属性控制语句,对属性值的合法性进行判断。 2、包的作用:管理Java文件,解决同名文件冲突 3、定义包:package 包名 //必须放在Java源程序的第一行 包名间可以使用“.”隔开 4、系统中的包: java.(功能).(类) java.lang.(类) 包含Java语言基础的类 java.util.(类) 包含Java语言中各种工具类 java.io.(类) 包含输入,输出相关功能的类 5、包的使用: (1).可以通过使用import关键字,在某个文件使用其他文件中的类。 (2).Java中,包的命名规范是全小写字母拼写 (3).使用的时候不但可以加载某个包下的所有文件 eg:com.imooc.* 也可以加载某个具体子包下的所有文件 6、访问修饰符: 7、this关键字代表当前对象 this.属性 操作当前对象的属性 this.方法 调用当前对象的方法 封装对象的属性的时候,经常会使用this关键字。 8、什么是 Java 中的内部类 问:什么是内部类呢? 答

java开发中/final关键字/多态/抽象类/接口/形式参数与返回值/内部类/匿名内部类知识梳理

醉酒当歌 提交于 2019-11-26 21:56:47
一,final关键字 1. final修饰类,该类不能被继承, 2. final修饰成员方法,该方法不能重写. 3. final修饰类的成员变量,该变量的值不能改变, 4. final修饰局部变量: a,若该局部变量的类型为基本数据类型,该变量的值不能被改变. b,若该变量的类型为引用类型,那么它不能再次被分配堆内存空间,但是该变量的值可以改变. #当final修饰变量时,需要在对象创建创建之前进行初始化这个值: a,构造代码块中进行初始化 b,构造方法中进行初始化 c,定义成员变量的时候,可以直接进行初始化. 注意:这三种方式只能同时使用一种. #final修饰局部变量的综合应用: package Day_08_01; public class FinalXiuShi { int age ; public static void main(String[] args) { /* int n=100; n=200; System.out.println(n);*/ final int n =100; /*n=200;*/ // 该变量被 final 修饰 , 其值不会发生改变 /*System.out.println(n); System.out.println("---------------");*/ /* FinalXiuShi fl =newFinalXiuShi();

this和super的用法

房东的猫 提交于 2019-11-26 19:34:53
this关键字的使用: 1.成员变量和局部变量重名时,在方法中调用成员变量,需要使用this.调用。 2.把这个类自己的实例化对象当做参数进行传递时,使用this。 3.内部类中,调用外部类的方法或变量,可以使用 类名.this.(变量或方法名)。 4.在同一个类中,可以使用this关键字调用同名的重载构造方法(前提是在构造方法中调用其他构造方法,必须放在当前构造方法的第一行) super关键字的用法: 1.通过super后直接跟参数,可以调用父类的构造方法。 2.当子类和父类有同名的成员变量或构造方法时,可以通过使用super关键字调用父类中的方法或者成员变量。 3.在父类已有的逻辑中加入一些自己的方法,可以使用super,但是需要放在当前构造方法的首位。 来源: https://www.cnblogs.com/123456hjx/p/11331129.html

this关键字

a 夏天 提交于 2019-11-26 19:34:36
创建对象分为四步: 1.分配对象空间,并将对象成员变量初始化为0或非空 2.执行属性值的显式初始化 3.执行构造方法 4.返回对象的地址给相关变量 this的本质是“创建好的对象的地址”,在构造方法中使用this代表“当前对象”。 this最常见的用法: 1.在程序产生二义性之处,应用this指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。 2.使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中使用,并且必须位于构造方法的第一句。 测试实例: 3.this不能用于static方法中。 结合之前文章的内存分析图 如果在study写this.id;在对象中会很容易找到id变量,如果在方法区中使用this,因为存储的是类信息而不是对象,所以找不到,在static方法中不能调用this。 来源: https://www.cnblogs.com/laurarararararara/p/11331134.html

Java之反射

那年仲夏 提交于 2019-11-26 19:27:46
内容介绍 类加载器 反射构造方法 反射成员变量 反射成员方法 反射配置文件运行类中的方法 1 类加载器 1.1 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象 连接   验证 是否有正确的内部结构,并和其他类协调一致   准备 负责为类的静态成员分配内存,并设置默认初始化值   解析 将类的二进制数据中的符号引用替换为直接引用 初始化   就是我们以前讲过的初始化步骤 1.2 类初始化时机 1. 创建类的实例 2. 类的静态变量,或者为静态变量赋值 3. 类的静态方法 4. 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象 5. 初始化某个类的子类 6. 直接使用java.exe命令来运行某个主类 1.3 类加载器 负责将.class文件加载到内在中,并为之生成对应的Class对象。 虽然我们不需要关心类加载机制,但是了解这个机制我们就能更好的理解程序的运行 1.4 类加载器的组成 Bootstrap ClassLoader 根类加载器   也被称为引导类加载器,负责Java核心类的加载   比如System,String等。在JDK中JRE的lib目录下rt

【十】类——2

夙愿已清 提交于 2019-11-26 19:11:55
一.类的继承 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。 通过继承创建的新类称为 子类 或 派生类 ,被继承的类称为 基类 、 父类 或 超类 。 继承语法 class 派生类名(基类名) ... 在python中继承中的一些特点: 如果在子类中需要父类的构造方法就需要显示的调用父类的构造方法,或者不重写父类的构造方法。 在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数 Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。 如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。 语法: 派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后,如下所示: class SubClassName (ParentClass1[, ParentClass2, ...]): ... 实例: class Parent: # 定义父类 parentAttr = 100 def __init__(self): print "调用父类构造函数" def parentMethod(self): print '调用父类方法' def setAttr(self, attr

4.PHP面向对象编程

邮差的信 提交于 2019-11-26 19:11:49
4.1.$this 关键字:只能在一个类的内部使用 4.2.构造方法:__construct() 一个类只能创建一个构造方法,且不能主动被调用。 4.3.析构方法:__destruct() 与构造方法相对,对象在内存中被销毁前调用析构方法。该方法不能带有任何参数。 4.4.静态属性和静态方法:使用static修饰的属性和方法。不需要在类实例化的情况下就可以直接使用。 (4.4.1)静态属性属于类本身而不是属于类的任何实例。 (4.4.2)如果要在同一类的成员方法中访问静态属性,需要在前面加上操作符“self::” (4.4.3)静态方法 4.5 类常量:需要大写,使用关键字const修饰。使用方法如下: 如果要在同一类的成员方法中访问类常量,需要在前面加上操作符“self::” 4.6 对象的“克隆” 通过clone克隆一个对象 __clone()方法 4.7 继承:extends (4.7.1)案例:创建一个Student类,使其继承于已经存在的People类。 (4.7.2)使用parent:: 关键字,调用父类中的方法: (4.7.3)使用instanceof运算符:检测当前对象实例是否属于一个类的类型,返回布尔。 (4.7.4)覆盖父类方法:也叫重写,要求覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。 (4.7.5)在父类和子类都定义了构造方法时

十六、python面向对象基础篇

馋奶兔 提交于 2019-11-26 17:40:24
面向对象基础: 在了解面向对象之前,先了解下变成范式: 编程范式是一类典型的编程风格,是一种方法学 编程范式决定了程序员对程序执行的看法 oop中,程序是一系列对象的相互作用 python支持多种编程范式,面向过程,面向对象,面向切面(装饰器部分)等 -------------------------------------------------------------------- -------------------------------------------------------------------- -------------------------------------------------------------------- OOP思想: 面向对象的基本哲学,世界由具有各自运动规律和内部状态的对象组成,对象之间的相互作用和通讯构成了世界。 唯一性,世界上没有两片相同的树叶,同样的没有两个相同的对象 分类性,分类是对现实世界的抽象 三大特性,继承,多态和封装 老祖宗都是打鱼的,我也是打鱼的 ====》继承 老祖宗用木头插,我用渔网捕鱼 ====》多态 人家找我借100块钱,我从银行拿100块钱给它,被必要告诉它我银行里有多少钱 ======》封装 -----------------------------------------------------

JavaSE 17(继承和多态)

江枫思渺然 提交于 2019-11-26 17:21:21
前言: 继承与多态是是 Java 在软件重用方面重要且功能强大的特征。假设要定义一个类,对圆、矩形和三角形建模。这些类有很多共同的特性。设计这些类来避免冗余并使系统更易于理解和易于维护的最好方式是什么? 答案就是使用继承。 因此我在此整理本章的重点与难点,以便于自己的复习与巩固。 1. 父类和子类: 在 Java 术语中,如果类 Cl 扩展自另一个类 C2, 那么就将 Cl 称为次类( subclass ), 将 C2 称为超类(superclass )。超类也称为父类 ( parent class) 或基类 ( baseclass), 次类又称为子类 ( child class)、扩展类 ( extended class) 或派生类(derivedclass)子类从它的父类中继承可访问的数据域和方法,还可以添加新数据域和新方法。 2.使用 super 关键字: this 它是对调用对象的引用,关键字 super是指这个super 关键字所在的类的父类。关键字 super 可以用于两种途径: 1 ) 调用父类的构造方法。 2 ) 调用父类的方法。 注意:super和this的用法相似 this:代表本类的对象引用。 super:代表的父类内存 空间,而不是父类的引用。 子父类中同名的成员变量,这种情况开发中不用,因为父类一旦描述完成了属性, 子类直接使用就可以了。 3

JAVA学习第一阶段(1)

自作多情 提交于 2019-11-26 17:17:09
java入门第一阶段 1.在java中接受并保存用户输入的值: (1)import java.util.Scanner//引入包 (2)Scanner input=new Scanner (System.in);//创建Scanner对象 (3)int score=input.nextInt();//获取用户输入的信息并规定了变量的类型(这里是int) 2.在java中对数组的基本操作: (1)import java.util.Arrays;//引入包 (2) // 使用Arrays类的sort()方法对数组进行排序 Arrays.sort(scores); // 使用Arrays类的toString()方法将数组转换为字符串并输出 Arrays.toString(scores); 3.使用foreach基本操作: (1) int[] scores = { 89, 72, 64, 58, 93 }; for ( int score:scores) {//定义数组中的元素名称为score System.out.println(score); } 4.定义java中的方法: (1)无参无返回值: public void calcAvg() { ...... } (2)无参带返回值: public double calcAvg() { ...... return (double型的数据)