成员变量

python 类的成员

安稳与你 提交于 2019-12-04 08:23:27
1. @staticmethod 静态方法 class People(object): def __init__(self,name): self.name = name @staticmethod # 静态方法,不能访问实例变量和类变量,和类实际没啥关系,除了把它放到类里面,然后通过类来调用它。 def getname(self,sex): # 虽然有self,但是需要调用的时候手动传入实例。 print('%s is a %s' %(self.name,sex)) people = People('LaoWang') people.getname(people,'man') # 想要访问实例变量,只能手动传递实例进入!如果写成:people.getname('man')会报错。 2. classmethod 类方法 class People(object): age = 30 def __init__(self,name): self.name = name @staticmethod # 静态方法,不能访问实例变量和类变量,和类实际没啥关系,除了把它放到类里面,然后通过类来调用它。 def getname(self,sex): # 虽然有self,但是需要调用的时候手动传入实例。 print('%s is a %s' %(self.name,sex))

烈酒焚心 提交于 2019-12-04 08:14:51
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。 1导包,也就是指出需要使用的类在什么位置 import 包名称.类名称 导包语句对于和当前类属于当前类在同一个包内的不需要使用导包语句 静态成员方法的调用不需要创建对象 2创建 类名称 对象名=new 类名称() 3使用 如何使用成员变量 对象.成员变量名 使用成员方法名 对象名.成员方法名(参数) 注意事项 成员变量不赋值,就会有一个默认值,规则和数组一样 使用对象类型作为方法的参数(Phone prim) 使用对象类型作为方法的返回值 return one; 成员变量和局部变量的区别: 局部变量没有默认值,没有赋值不能使用 成员变量有默认值,规则和数组一样 方法的参数在方法调用时必然会被赋值 来源: https://www.cnblogs.com/Damocless/p/11847941.html

PHP类

不问归期 提交于 2019-12-04 05:59:13
类概念: 类参考: https://www.runoob.com/php/php-oop.html 类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。 对象 − 是类的实例。 成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。 成员函数 − 定义在类的内部,可用于访问对象的数据。 继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 父类 − 一个类被其他类继承,可将该类称为父类,或基类,或超类。 子类 − 一个类继承其他类称为子类,也可称为派生类。 多态 − 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。 重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。 抽象性 − 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的

java基础知识-基本概念

穿精又带淫゛_ 提交于 2019-12-04 04:18:13
1.1 java语言有哪些优点? 1.java语言为纯面向对象的语言。 2.平台无关性。java语言的优点便是“一次编译,到处执行”。编译后的程序不会被平台所约束,因此java语言有很好的移植性。 3.java提供了许多内置的类库,将代码封装好来给操作人员使用,从而大大减少开发人员的时间。 4.提供了对web应用的开发的支持。 5.具有较好的安全性和健壮性。 6.去除了c++语言中难以理解,容易混淆的特性,例如头文件,指针,结构,单元运算符重载,虚拟基础类,多重继承等,所以java语言是由c++语言改进并重新设计而来的 1.2 java语言和c/c++有什么异同。 java和C++都是面向对象的语言,都使用了面向对象的思想(例如封装,继承,多态),由于面向对象有许多非常好的特性(继承,组合等),因此二者都有很好的重用性。 下面重点说一下不同点: 1.java为解释型语言,c/c++为编译型语言,java代码由java编译器编译成字节码,然后由JVM解释,C语言代码经过编译和链接生成可执行的二进制代码,因此java的执行速度比c++慢,但是java可跨平台执行,c/c++不能 2.java语言没有指针 3.java只能实现单重继承,但是可以引入多个接口 4.java为纯面向对象语言,所有代码必须在类里实现 5.java语言提供了垃圾回收器来实现对垃圾的自动回收,c+

Java类和对象

此生再无相见时 提交于 2019-12-04 04:17:14
一、类   类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形式存在。 1. 类的构造方法    构造方法是一个与类同名的方法 ,对象的创建就是通过构造方法完成的,构造方法分为有参构造方法和无参构造方法,区别就在于有没有参数。说这么多概念是不是感觉有点麻木,直接看下面的例子吧。 public class Example { public Example() { // 定义无参构造方法 System.out.println("无参构造方法"); }​public Example(String name) { // 定义有参构造方法 System.out.println("有参构造方法"); }​} 在定义构造方法时,构造方法没有返回值,且构造方法不需要void关键字进行修饰。“public”是构造方法的修饰符,“Example”是构造方法的名称。   在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。 2. 类的主方法   主方法其实我们已经见过很多次了,Java编译器通过主方法来执行程序,是类的入口点,语法格式如下: public static void main(String[] args) { // ...}   “static”是指主方法是静态的,若在其中调用其它方法

【C语言】-struct

落花浮王杯 提交于 2019-12-04 04:01:21
在c语言中结构体(struct)跟面向对象编程(如java等)里面的类是非常相似的。不过像C++里面对结构体进行了扩展,c++里面的结构体是可以包含方法的,但是C语言里面是不能包含方法(函数)的。 一般格式 struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; 类型为五种数据类型(整型、浮点型、字符型、指针型和 无值型)。 定义结构变量。 struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } person; 这个例子定义了一个结构名为string的结构变量person, 如果省略变量名 person, 则变成对结构的说明。用已说明的结构名也可定义结构变量。这样定义时上例变成: struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; }; struct string person; 如果需要定义多个具有相同形式的结构变量时用这种方法比较方便, 它先作结构说明, 再用结构名来定义变量。 例如: struct string

C语言字节对齐问题详解

我怕爱的太早我们不能终老 提交于 2019-12-04 03:48:45
本文转自: https://www.cnblogs.com/clover-toeic/p/3853132.html 引言 考虑下面的结构体定义: 1 typedef struct{ 2 char c1; 3 short s; 4 char c2; 5 int i; 6 }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始地址是0,则s的地址就是1,c2的地址是3,i的地址是4。 现在,我们编写一个简单的程序: 1 int main(void){ 2 T_FOO a; 3 printf("c1 -> %d, s -> %d, c2 -> %d, i -> %d\n", 4 (unsigned int)(void*)&a.c1 - (unsigned int)(void*)&a, 5 (unsigned int)(void*)&a.s - (unsigned int)(void*)&a, 6 (unsigned int)(void*)&a.c2 - (unsigned int)(void*)&a, 7 (unsigned int)(void*)&a.i - (unsigned int)(void*)&a); 8 return 0; 9 } 运行后输出: 1 c1 -> 0, s -> 2, c2 -> 4, i -> 8 为什么会这样?这就是字节对齐导致的问题。

漫谈值类型和引用类型

白昼怎懂夜的黑 提交于 2019-12-04 02:46:00
一.前言 从这个简单程序的输出结果,你想到了什么?是不是与你心中想的结果不一致?是不是觉得输出的结果应该为: i is 1,o is 8,o2 is 8 二.程序执行前 图 2 我们都知道,每一个方法在执行前,操作系统会给方法内每个变量分配内存空间。从图2中就可以看出,在执行前各变量(i,o,o2)已分配了内存,且各自都有初始值。 从图中,可以发现变量i和变量o,o2有些许不同。变量i在内存中存储的值和程序中的值是一样的,都是0;变量o,o2在内存中存储的值和程序中的值不一样,内存中存储的值是一个地址(0x00000000),程序中的值是null,那变量o,o2的null值存储在哪呢?为什么变量i和变量o,o2会有如此大的不同呢? 我们都知道,C#有两大类型:值类类型和引用类型。图2中int属于值类型,object属于引用类型。接下来,介绍一下值类型和引用类型: 1.值类型的值存储在内存栈上,引用类型的值存储在内存堆中。 园中有很多博文这么描述,我用程序验证了一下全局的值类型变量的值,静态的值类型变量的值,引用类型实例中值类型成员的值,如下图3 图 3 从图中,可以看出变量(j,o,seg,st)的值应该是在同一个存储区域中,而变量(gi)是在另外一个存储区域中。引用类型Student的成员Age的地址还未分配。所以说值类型的值存储在内存栈上是不准确的。 查找了一些资料

java:多态

╄→尐↘猪︶ㄣ 提交于 2019-12-04 02:00:37
多态中访问成员变量的两种方法:   1:直接通过对象名称访问成员变量,等号左边是谁,就优先用谁,没有则向上查找   2:间接通过成员方法访问成员变量,方法属于谁,就优先用谁,没有则向上查找 多态中访问成员方法的规则:   看new的是谁,就优先用谁,没有则向上查找 口诀:成员变量,编译看左边,运行还看左边    成员方法,编译看左边,运行看右边 来源: https://www.cnblogs.com/BatmanY/p/11827636.html

c++ 面试(100题刷题)

陌路散爱 提交于 2019-12-04 01:53:39
目录 1.C++与C的差异 1.1 C与c++中的struct的差异 1.4 c与c++ 不同之处 1.5 指针与引用的区别 1.6 sizeof 1.7 static 的作用域 1.8 c++ 中值传递的三种方式 1.9 inline 函数 1.10 virtual与inline 1.11 Debug和Release的区别 1.12 assert 1.13 const 与#define 1.14 malloc/free 与 new delete 1.15 动态申请内存耗尽 1.20 const 1.21 判断系统是多少位系统 1.22 1.23 1.24 实参与形参 1.25 计算精度误差 1.26 堆和栈 1.27 explicit与protected 1.28 浅拷贝与内存泄漏 ,深拷贝 1.30 数组名作为参数与int 作为参数的区别 1.31 程序的可读性与可维护性-变量 1.32 const 的用法 1.33 virtual 是如何实现多态的? 1.34 面向对象三大特性 1.35 重载 ,重写 ,重定义 1.36 一个空类的对象占的字节数 1.37 内联函数是否参数检查 1.38 析构函数与虚函数 1.40 c++模板编程的理解 1.41 函数模板与类模板 1.41 运算符重载 1.42 基类的析构函数为什么必须是虚函数? 1.43 c++的左值与右值 1.44