类和对象

方法与五子棋游戏

China☆狼群 提交于 2019-11-30 06:21:56
方法: 一段用于完成特定功能的代码片段,类似于其他语言的函数。 方法用于定义该类或该类的失礼行为特征和功能实现。方法是类和对象行为特征的抽象。方法类似于面向过程中的函数。在面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。方法包括方法名与参数。 方法的调用方式: 1 .形式参数 :在方法声明时用于接收外界传入的数据 2. 实参 :调用方法时实际传给方法的数据 3. 返回值 :方法在执行完毕后返回给调用它的环境的数据 4 .返回值类型 :事先约定的返回值的数据类型,如无返回值类型,必须显示指定为void 两个数值的交换与对应的内存分析: 来源: https://www.cnblogs.com/laurarararararara/p/11567499.html

类加载和反射

点点圈 提交于 2019-11-29 23:35:45
2、反射 在我们使用类之前会有一个进入内存的步骤,其中分为三步,加载、连接、初始化三步。 第一个加载过程是class文件读入内存,并且在栈里面创建一个class对象。(不论是什么类使用之前都会创建一个class对象)。 连接: 初始化: 类初始化时机就是如何在栈里面建内存的步骤行为。类的加载。 1、new person 2、静态变量 3、静态方法 4、使用反射方式来强制创建某个类或接口对应的java.lang.class对象 5、进内存的父类的子类 6、main java.exe命令 类加载器: 是将程序的.class文件加载到内存(程序的.class文件是由上面的6中方式产生的。),并且产生class对象,我们自定义的类都会出现一个class对象,因为他是对象,所以我们可以用对象.方法名()调取能够访问的所有方法。 类加载器的组成。 跟类加载器 核心 jar包 拓展类加载器 系统及在其 平时自定义的类。 如何获取反射? 反射的意义是java在运行状态时,对任意类都能知道所有的属性和方法,对于一个类,我们可以调用它的任意一个方法和属性。 1、Class类 通过类加载器,我们知道,class类不是自己创建出来的,而是系统让类加载进栈内存产生的,所以我们获取的class对象只能获取并不能new对象修改,因为它没有构造方法。 开头第一步之获取Class类 ①通过Object

类和对象

落花浮王杯 提交于 2019-11-29 16:37:24
类和对象 面向对象概述 所谓对象就是某种事物的抽象(功能),抽象包括数据抽象和过程抽象两个方面,数据抽象就是定义对象的属性;过程抽象就是定义对象的操作(行为)。 面向对象的三(四)大特征:封装,继承,多态,(抽象)。 封装 :把描述对象属性的变量及实现对象功能的方法结合起来,定义一个程序单位,并保证外界不能任意 更改内部的属性,不能任意调动内部的方法接口。 继承 :大大增强了代码的可复用性,提高了软件的开发效率,为程序的修改扩充提供了材料。Java 不支持多继 承(菱形继承方式),为了弥补 Java 不支持继承带来的子类不能享用多个父类的成员缺憾,我们在后面的学习中会 引入“接口”这个概念。 多态 :同一个方法名,根据被调对象的不同,实现了不同的行为。 主要分成静多态(方法的重载)和动多态(继承,重写,向上造型)。 抽象 :使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。 类和对象概述 1. 类的概念 类是一种 新的数据类型 ,类定义数据类型的属性(变量,字段),行为(方法)。对象是基于类的具体实现,又称为类的实例。 类是一个抽象概念 , 对象是类的具体实现 类所定义的对象是不唯一的,依需求(需要)而定 例: 定义一个类,人

C++类和对象(三)之拷贝构造函数

不想你离开。 提交于 2019-11-29 16:33:14
1.概念: 构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。 2.特征 拷贝构造函数是构造函数的一个重载形式。 拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用。 若未显示定义,系统生成默认的拷贝构造函数。 默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝我们叫做浅拷贝,或者值拷贝。 class Date { public: Date(int year = 1900, int month = 1, int day = 1) { _year = year; _month = month; _day = day; } Date(const Date& d) //传引用 { _year = d._year; _month = d._month; _day = d._day; } private: int _year; int _month; int _day; }; int main() { Date d1; Date d2(d1); return 0; } 问:为什么传值会引起无限递归调用? 答: 因为传值调用时,形参是实参的一份拷贝。 看不懂需要更详细的请点击: C++拷贝构造函数的参数为什么必须使用引用 来源: https://blog.csdn.net

C++中类的定义和类的构造函数

落花浮王杯 提交于 2019-11-29 16:25:16
类的定义 class 类名{ 访问范围说明符: 成员变量1 成员变量2 成员函数声明1 成员函数声明2 访问范围说明符: 更多成员变量 更多成员函数声明 ... }; 类的定义要以 ; 结束。 “访问范围说明符”一共有三种,分别是 public、private 和 protected。三者的区别后面会详细介绍,目前暂且都用 public。“访问范围说明符”可以出现任意多次。 “成员变量”的写法与普通的变量定义相同。称其为成员变量,是因为这些变量是一个类的成员。 同样地,“成员函数声明”的写法也与普通的函数声明相同。 一个类的成员函数之间可以互相调用。类的成员函数可以重载,也可以设定参数的默认值。 以前所学的函数不是任何类的成员函数,可称为“全局函数”。 成员变量就代表对象的“属性”,成员函数就代表对象的“方法”。成员变量和成员函数出现的先后次序没有规定。 成员函数的实现可以位于类的定义之外,格式如下: 返回值类型 类名:函数名() { 函数体 } 定义类之后,就可以定义对象了。定义对象的基本方法如下: 类名 对象名; 此处,“对象名”的命名规则和普通变量相同。对象也可以看作“类变量”。 public: int w, h; //成员变量,宽和高 void init( int w_,int h_ ); //成员函数,设置宽和高 int area(); //成员函数, 求面积 int

Kotlin入门潜修

China☆狼群 提交于 2019-11-29 14:07:23
简书专题: kotlin入门潜修专题系列 kotlin入门潜修之开门篇—kotlin是什么? kotlin入门潜修之基础篇—基础语法 kotlin入门潜修之基础篇—packages(包)相关 kotlin入门潜修之基础篇—控制表达式 kotlin入门潜修之基础篇—返回和跳转 kotlin入门潜修之类和对象篇—类和对象 kotlin入门潜修之类和对象篇—继承 kotlin入门潜修之类和对象篇—属性和字段 kotlin入门潜修之类和对象篇—接口 kotlin入门潜修之类和对象篇—权限修饰符 kotlin入门潜修之类和对象篇—扩展及其原理 kotlin入门潜修之类和对象篇—数据类及其原理 kotlin入门潜修之类和对象篇—密封类及其原理 kotlin入门潜修之类和对象篇—泛型及其原理 kotlin入门潜修之类和对象篇—嵌套类及其原理 kotlin入门潜修之类和对象篇—枚举类及其原理 kotlin入门潜修之类和对象篇—object及其原理 kotlin入门潜修之类和对象篇—委托及其原理(一) kotlin入门潜修之类和对象篇—委托及其原理(二) kotlin入门潜修之进阶篇—方法及尾递归原理 kotlin入门潜修之进阶篇—高阶方法和lambda表达式 kotlin入门潜修之进阶篇—高阶方法和lambda表达式原理 kotlin入门潜修之进阶篇—inline方法及其原理

Java自学-类和对象 属性初始化

蓝咒 提交于 2019-11-29 05:48:55
如何进行Java的属性初始化 步骤 1 : 对象属性初始化 对象属性初始化有3种 声明该属性的时候初始化 构造方法中初始化 初始化块 . public class Hero { public String name = "some hero"; //声明该属性的时候初始化 protected float hp; float maxHP; { maxHP = 200; //初始化块 } public Hero(){ hp = 100; //构造方法中初始化 } } 步骤 2 : 类属性初始化 类属性初始化有2种 声明该属性的时候初始化 静态初始化块 . public class Hero { public String name; protected float hp; float maxHP; //物品栏的容量 public static int itemCapacity=8; //声明的时候 初始化 static{ itemCapacity = 6;//静态初始化块 初始化 } public Hero(){ } public static void main(String[] args) { System.out.println(Hero.itemCapacity); } } 练习 : 属性初始化 对象属性的初始化有三种方式 故意把初始化块,放在构造方法下面,问题: 这三种方式

类和对象

家住魔仙堡 提交于 2019-11-29 05:02:24
目录 一. 面向过程编程 二. 面向对象编程 三. 类和对象 1. 类 2. 对象 3. 定制对象独有的特征 一. 面向过程编程 ​ 面向过程是具体化的,流程化的。解决一个问题,需要一步一步分析需要怎样,然后需要怎样,一步一步实现的。 ​ 面向过程:一步一步(一个函数一个函数)的完成某件事。(上一个函数的输出为下一个函数的输入) ​ 优点:复杂的问题流程化、简单化,条理清晰 ​ 缺点:扩展性差;中间任何一个地方出错了,流程就不能继续下去了 二. 面向对象编程 ​ 面向对象是模型化的,抽象出一个类,这是一个封闭的环境,在这个环境中有数据有解决问题的方法,你如果需要什么功能直接使用就可以了,至于是怎么实现的,不用知道。 三. 类和对象 1. 类 定义:具有相同的属性和技能的对象属于同一类。 定义类的方法:类定义阶段:执行代码 ''' class 类名(驼峰体): school = 'oldboy' # 定义变量(给类添加属性) def choose_course(self): # 定义在类内部的函数一般称为方法(给类增加技能) pass ''' ​ 例: class Student: """注释:学生类""" school = 'oldboy' # 定义变量(给类添加属性) def choose_course(self): # 定义在类内部的函数一般称为方法(给类增加技能) print

Java自学-类和对象 访问修饰符

依然范特西╮ 提交于 2019-11-29 03:13:57
Java的四种访问修饰符 成员变量有四种修饰符 private 私有的 package /friendly/default 不写 protected 受保护的 public 公共的 比如public 表示公共的 public String name; 而maxHP 没有修饰符即代表package/friendly/default float maxHP 示例 1 : 类之间的关系 类和类之间的关系有如下几种: 以Hero为例 自身 :指的是Hero自己 同包子类 :ADHero这个类是Hero的子类,并且和Hero处于 同一个包下 不同包子类 :Support这个类是Hero的子类,但是在 另一个包下 同包类 : GiantDragon 这个类和Hero是 同一个包 ,但是彼此 没有继承关系 其他类 :Item这个类, 在不同包 ,也没有继承关系的类 示例 2 : private 私有的 使用private修饰属性 自身:是可以访问的 同包子类:不能继承 不同包子类:不能继承 同包类:不能访问 其他包类:不能访问 注: 红色字体,表示不可行 package charactor; import property.Weapon; public class Hero { //属性id是private的,只有Hero自己可以访问 //子类不能继承 //其他类也不能访问 private

Java自学-类和对象 传参

我们两清 提交于 2019-11-29 01:39:43
Java中的传参 变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参 步骤 1 : 基本类型传参 基本类型传参 在方法内,无法修改方法外的基本类型参数 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 public Hero(){ } //回血 public void huixue(int xp){ hp = hp + xp; //回血完毕后,血瓶=0 xp=0; } public Hero(String name,float hp){ this.name = name; this.hp = hp; } public static void main(String[] args) { Hero teemo = new Hero("提莫",383); //血瓶,其值是100 int xueping = 100; //提莫通过这个血瓶回血 teemo.huixue(xueping); System.out.println(xueping); } } 步骤 2 : 引用与= 如果一个变量是基本类型 比如 int hp = 50; 我们就直接管hp叫变量 =表示赋值的意思 。 如果一个变量是类类型 比如 Hero h