成员变量

Java面向对象

Deadly 提交于 2019-12-03 23:42:20
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。 概述: Java是面向对象的程序设计语言,Java语言提供了定义类、成员变量、方法等最基本的功能。类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java程序使用类的构造器来创建该类的对象。 对象和类: Java是面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成一种自定义类型,可以使用类来定义变量,这种类型的变量统称为引用变量。也就是说,所有类是引用类型。对象是由类创建出来的,可以说类时对象的抽象,对象是类的实例。 对象的概念: Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点: 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性。 对象都是某个类别的实例。 一切皆为对象,真实世界中的所有事物都可以视为对象。 面向对象与面向过程: 1、面向过程: 面向过程是一种以事件为中心的编程思想

有状态对象和状态对象

倾然丶 夕夏残阳落幕 提交于 2019-12-03 22:16:03
本博客转自: https://blog.csdn.net/eff666/article/details/52495393 有状态就是有 数据存储功能 。有状态对象(Stateful Bean),就是 有实例变量的对象 ,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态 。其实就是有数据成员的对象 。 无状态就是一次操作, 不能保存数据 。无状态对象(Stateless Bean),就是没有实例变量的对象。不能保存数据,是不变类,是线程安全的。 具体来说就是只有方法没有数据成员的对象,或者有数据成员但是数据成员是可读的对象。 来源: CSDN 作者: cpc q:2531249502 链接: https://blog.csdn.net/qq_43059674/article/details/88718650

c++中const用法

三世轮回 提交于 2019-12-03 21:00:27
1 使用const修饰变量 有时候我们需要定义这样一种变量,它的值不能被更改。为了满足这一要求,可以通过关键字const对变量的类型加以限定。 1.1 const 修饰普通的变量 const int bufSize=512; 这里将bufSize定义成了一个常量。任何试图为bufSize赋值的行为都将引发错误。 注意:const对象必须初始化,因为const对象一旦创建后其值就不能再改变。 如: const int j=42; //正确,编译时初始化 const int i=get_size();//正确,运行时初始化 const int k; //错误,未初始化 int i=42; const int ci=i;//正确, 1.2 const的引用 对常量的引用(reference to const),将引用绑定到const对象上。与普通引用不同的是: (1)对常量的引用不能用于修改它所绑定的对象。 (2)不能将非常量引用指向一个常量对象值。 (1)对常量的引用不能用于修改它所绑定的对象。 int i=42; int &r1=i; const int &r2=i;//r2也绑定了对象i,但不允许通过r2修改i的值 r1=0; //正确 r2=0; //错误,r2是一个常量引用 (2)不能将非常量引用指向一个常量对象。 const int ci=1024; int &r2=ci;

Python学习day8面向对象编程2-类的属性和方法

馋奶兔 提交于 2019-12-03 20:57:14
一、类的属性 1.语法格式 修饰符 类型 属性名 = 初值 说明:修饰符 private :该属性只能由该类的方法使用。在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)    修饰符 public: 该属性可以被该类以外的方法访问。对所有类可见。使用对象:类、接口、变量、方法      类型: 任何基本类型,如int、boolean或任何类 补充:修饰符可以用来修饰变量,可以指明变量是公有还是私有,私有的变量不能通过 对象.属性 的方式调用 2.变量的分类:   1.成员变量:在方法体外,类体内,声明的变量称为成员变量       成员变量包括:1.实例变量(不以static修饰)             2.类变量(以static修饰)   2.局部变量:在方法体内部声明的变量称为局部变量       局部变量包括:1.形参(方法签名中定义的变量)              2.方法局部变量(在方法内定义的变量)              3.代码块局部变量(在代码块内定义的变量) 实例: public class Person{ public String name = "赵云";//public:公有的,这样的类不仅可以在本类的方法中使用,也可以在类的外部使用 private int age;//private:私有的,只可以在本类方法中使用

反 射

风格不统一 提交于 2019-12-03 20:41:54
一.概述 反射的学习,是便于能更好的理解框架编程。 目前主流的框架技术底层都是反射的机制,如:struts、spring、hibernate等 反射本质上就是一种动态编程的技术,可以在运行阶段动态地创建对象以及动态地调用方法,具体由实参决定。 引出: 若想在写代码的时候,不能确定需要创建Person对象 还是 Student对象。而是希望程序到了运行阶段,能够自行动态地决定创建具体的那个所需对象。 那么此时,就需要用到反射技术! 如: Person p = new Person(); - 只能创建Person类型的对象。 Student s = new Student(); - 只能创建Student类型的对象。 void show(){ } void show(int i){ } void show(double d){ } 如何使用 反射 ? 要用反射技术,需要借助一个类: Java.lang.Class 类 二,Class 类 1、基本概念 java.lang.Class类的实例代表应用程序的类和接口,通俗来说 ,就是该类的实例代表一种数据类型。 (不是内存空间中堆区中普通对象的一块内存空间) 区别于: Person p =new Person(); Person的一个实例, 代表的是 堆区中的一块内存空间。 而java.lang.Class类的实例代表一种数据类型。

android studio: 快捷键生成getter/setter方法时自动加m的问题

一个人想着一个人 提交于 2019-12-03 17:33:20
平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题的,可是在默认情况下使用快捷键生成getter()/setter()方法时,生成的getter()/setter()方法名居然也加了“m” ,成员变量的个数少了也就罢了,自己一个一个手改,成员变量的个数一多,改的人头都大了! 比如我要给一个名为Person的实体类生成getter()/setter()方法 使用快捷键生成后: 今天实在是受不了了,找到一个办法,可以修正这个问题,打开“File”-"Settings"-"Editor"-"Code Style"-"Java"-"Code Generation 选项卡",在Name prefix 的Field 输入框中输入“m”, 在Static Field的输入框中输入“s”, 点击OK保存。 删掉之前的getter/setter方法,再用快捷键生成一次: 瞬间世界清静了不少,看来IDEA这个IDE确实如传说中的那样还是挺智能的,还真有不少东西需要我们去挖掘 :)。 来源: https://www.cnblogs.com/yongdaimi/p/11805059.html

python中变量的主要存在四种命名方式

吃可爱长大的小学妹 提交于 2019-12-03 14:37:32
(1)example:前后无下划线表示该变量、函数、成员或方法公有,可以以任何形式访问。 (2)_example:前置单下划线表示该内容受保护。如果是变量或者函数,在from some_module import *这种情况下,不会被导入。如果是成员或者方法,仅允许类内部使用及该类的子类继承。 (3)__example:前置双下划线表示该变量、函数、成员或方法私有,无法以任何方式被外部直接使用。类的私有成员及方法无法被子类继承,但对于本类来说,仍可以用a_instance._ClassName__MethodName()来调用。 (4)__example__:前后双下划线的命名方式用于python里的特殊方法。 来源: https://www.cnblogs.com/zjuhaohaoxuexi/p/11800294.html

C++中的const

孤者浪人 提交于 2019-12-03 11:46:36
关键字const 用const修饰的东西,初始化后就无法改变,用于保护数据 常对象 类名 const 对象名[实参表] const 类名 对象名[实参表] A const a() const A a() 常成员数据 const 数据类型 数据名 const int a 常成员函数 类型名 函数名(参数表)const int a()const{} pubic int a()const{} 常指针 类名 * const 指针名 A * cosnt p A * const p=&a; 指向常对象的指针 const 类型 * 指针名 const A *p 构造函数不能用const修饰 参数表只能构造函数使用 常对象必须定义时就初始化,之后就不变了。 常成员数据的 初始化 只能通过 构造函数的参数表 进行初始化,如果没有初始化,会报错,初始化后就无法更改 class Box //长方体类 { //补充2个成员函数使程序可以执行 // 在此处补充你的代码 /** * 注意:构造函数不能使用const修饰 * const数据成员只能在构造函数的初始化表中初始化 * const成员函数中不允许修改任何数据成员的值,但可以使用他们 * const对象只允许调用const成员函数 */ public : Box(int a,int b,int c) :length(a),width(b),height

Java——类

ⅰ亾dé卋堺 提交于 2019-12-03 11:04:46
1.1类 1.1.1 类的概念 l 类(class)和对象(object)是面向对象的核心概念。 类是对一类事物描述,是抽象的、概念上的定义;对现实世界中具有共性的事物进行抽象就形成了类;类是一种引用类型;类在现实世界中是不存在的,是人们大脑抽象出来的一个概念。 对象是实际存在的该类事物的每个个体,因而也称实例(instance)。 “万事万物皆对象” 1.1.2 类及类的成员 现实世界万事万物是由分子、原子构成的。同理,Java代码世界是由诸多个不同功能的类构成的。现实世界中的分子、原子又是由什么构成的呢?原子核、电子!那么,Java中用类class来描述事物也是如此,类的成员有:属性(Field)、方法(Method)、构造器、代码块以及内部类。 class Person{ // 属性或成员变量 String name; boolean isMarried; // 构造器 public Person(){} public Person(String n,boolean im){ name = n;isMarried = im; } // 方法或函数 public void walk(){ System.out.println("人走路..."); } public String display(){ return "名字是:" + name + ",Married:" +

从0开始写JavaWeb框架系列(4)从0开始写SamrtFrameWork:实现依赖注入

孤人 提交于 2019-12-03 10:51:16
一、实现依赖注入 1.1、.一个问题:在@Controller中定义Service成员变量,然后在Controller的Action方法中调用Service成员变量的方法,如何实现Service成员变量呢?可以通过@Inject注解来实现Controller中的Service实例化。 1.2、一种方式:通过BeanHelper获取所有BeanMap(记录了类与对象的映射关系)。然后遍历这个映射关系,分别取出Bean类与Bean实例,进而通过反射获取类中的成员变量。继续遍历这些成员变量,在循环中判断当前成员变量是否带有@Inject注解,若是带有该注解,则从BeanMap中根据Bean类取出Bean实例。最后通过Reflection#setFiled方法来修改当前成员变量的值。 1.3、编写IocHelper.java类来完成这件事情。编写好了IocHelper.java这个依赖注入的类,通过谁来加载呢?在什么时候加载呢?其实当IocHelper.java这个类被加载的时候,就会加载它的静态代码块。所以我们可以找一个统一的地方来加载IocHelper.java这个类。 package org.smart4j.framework.helper; import java.lang.reflect.Field; import java.util.Map; import org