成员变量

JAVA基础复习(重点)

易管家 提交于 2019-12-03 08:48:56
一、 初识Java编程 1、 Java开发环境 JDK Java开发工具 JVM Java虚拟机 JRE Java运行环境 2、实现第一个hello world public class Hello{ public static void main(String[] args){ System.out.println("hello man!"); } } 执行代码: (1) 在命令窗体输入: javac 文件名.java (2) 输入:java 文件名 注意: (1) 类名和文件名要保持一致; (2) Java源代码中的所有标点符号使用英文输入法状态输入; (3) Java源代码是区分大小写; (4) 类名默认都使用大写; 3、Java运行原理 4、变量的声明 声明语法: 数据类型 变量名 ; 赋值: 变量名 = 值; 示例: public class Hello{ public static void main(String[] args){ //声明整数类型的a,在内存中创建这个变量 int a; double b; double c; //给变量赋值 a = 1; b = 2; System.out.println(a/b); } } 5、标识符 (1) 标识符是用于类名、变量名、方法名、对象名、数组名等的命名; (2) 可以使用英文、数字、下划线_、$符号; (3)

继承、接口和抽象类

六月ゝ 毕业季﹏ 提交于 2019-12-03 05:32:42
继承 子类继承父类 物以类聚->提取共同点形成父类(parent)/基类(base)/超类(super) 子类/派生类继承父类 子类也会继承父类的属性(成员变量)和方法,私有的成员变量(private)除外,private变量要用public方法去访问。 同名同参情况下,本类的方法会比父类的方法优先级高。 单根继承:每个类都只能继承一个类(C++可以多个类) 不写extends,java类默认继承于java.lang.Object类,默认有方法toSrting,clone,equals,finalize,getClass,hashCode。 来源: https://www.cnblogs.com/linfeng-up/p/11780169.html

静态变量和成员变量有什么区别?

谁都会走 提交于 2019-12-03 02:53:52
1、成员变量包含在对象之中,每个对象都有独立的成员变量。一个对象成员变量的改变,不会影响别的对象。   而静态变量独立在对象之外,所有对象共享静态变量。静态变量值改变,会影响所有对象。 2、成员变量跟随着对象存在堆空间中,   静态变量存放在数据段中。 3、静态变量在类加载时产生,产生在对象之前。   成员变量随对象产生而产生,随对象销毁而销毁。 4、静态变量可以通过对象. 和类名. 的方式调用。   而成员变量只能通过对象. 的方式访问。 来源: https://www.cnblogs.com/xieshilin/p/11774739.html

类成员与方法访问控制从严的考虑因素

匿名 (未验证) 提交于 2019-12-03 00:37:01
主要从几个方面考虑: 1 ) 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private 。 2 ) 工具类不允许有 public 或 default 构造方法。 3 ) 类非 static 成员变量并且与子类共享,必须是 protected 。 4 ) 类非 static 成员变量并且仅在本类使用,必须是 private 。 5 ) 类 static 成员变量如果仅在本类使用,必须是 private 。 6 ) 若是 static 成员变量, 考虑是否为 final 。 7 ) 类成员方法只供类内部调用,必须是 private 。 8 ) 类成员方法只对继承类公开,那么限制为 protected 。 说明: 任何类、方法、参数、变量,严控访问范围。过于宽泛的访问范围,不利于模块解耦。 思考:如果是一个 private 的方法,想删除就删除,可是一个 public 的 service 成员 方法或 成员变量,删除一下,不得手心冒点汗吗?变量像自己的小孩,尽量在自己的视线内,变量作 用域太大, 无限制的到处跑,那么你会担心的。 文章来源: 类成员与方法访问控制从严的考虑因素

类与面向对象设计想法

匿名 (未验证) 提交于 2019-12-03 00:36:02
面向过程的结构化程序设计: 弊端: 缺乏对数据的封装 数据和方法(对数据进行操作)的分类 抽象数据类型: 将不同类型的数据集合成一个整体用来描述一种新的事物 例如:人作为一个整体,有name,age, height,sex等等等等信息,将这些信息集成在一起来用来描述人 类: 类定义了抽象数据类型 类定义了组成变量和该类操作的方法 定义类: 成员变量 方法 class 类名(){ //定义成员变量 成员变量类型 成员变量名称; ... //定义类的方法 修饰词 返回值类型 方法名称(参数列表){ 方法体 } } 创建对象: 使用new关键字创建对象,创建对象的过程称为实例化 new 类名(); 引用类型变量 类名 引用变量名 = new 类名(); 除去8种基本类型外,用类,接口,数组等声明的变量都称为引用类型变量 ,称为引用 访问成员变量和调用方法: 访问成员变量:变量名.成员变量名; 调用方法: 包: 如果把类名当做唯一标识符会导致冲突,所以用包(package)来区分 定义语法:package 包名; package语句必须写在java源文件的最开始 包可以有层次结构,一个包中包含另一个 一般公司是org.公司名称.项目名称.模块名 在一个类中要想访问另一个类,要用import语句:import 包名.类名 文章来源: 类与面向对象设计想法

多态-成员变量访问

匿名 (未验证) 提交于 2019-12-03 00:32:02
成员变量 编译看左边(父类),运行看左边(父类) 成员方法 编译看左边(父类),运行看右边(子类)。动态绑定 静态方法 编译看左边(父类),运行看左边(父类)。 (静态和类相关,算不上重写,所以,访问还是左边的) 只有非静态的成员方法,编译看左边,运行看右边 class Demo2_Polymorphic { public static void main(String[] args) { /*Father f = new Son(); //父类引用指向子类对象 System.out.println(f.num); Son s = new Son(); System.out.println(s.num);*/ Father f = new Son(); //f.print(); f.method(); //相当于是Father.method() } } /* 成员变量 编译看左边(父类),运行看左边(父类) 成员方法 编译看左边(父类),运行看右边(子类)。动态绑定 静态方法 编译看左边(父类),运行看左边(父类)。 (静态和类相关,算不上重写,所以,访问还是左边的) 只有非静态的成员方法,编译看左边,运行看右边 */ class Father { int num = 10; public void print() { System.out.println("father"); }

在继承多态中关于this的使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
通过this调用method和filed的区别 在继承多态中: 1、对于方法的覆盖,new的谁就调谁,这就是多态。 2、对于成员变量的覆盖,this在哪个类就指向哪个类的成员变量,没有多态。 public class ThisTest { @override public void Test(){ Fu f = new Zi(); System.out.println(f.num);//这里定义的是父类,而成员变量没有多态,所以即使你new的子类,依然指向父类的成员变量。 System.out.println(f.fun1());//不解释了,就是多态。 f.show(); } } class Fu { public String num = "父类成员变量"; public void show() { System.out.println(this.num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。 System.out.println(this.fun1());//因为方法有多态,所以this指向new对象的方法。 System.out.println(this);//打印的是子类对象 } public String fun1() { System.out.println(this.num);//因为成员变量没有多态,所以this指向当前类对象的成员变量

c++ 中 const 用法――

匿名 (未验证) 提交于 2019-12-03 00:22:01
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 首先提示的是:在常变量( 常引用( )、常对象( 用法1:常量 用法2:指针和常量 char *const cp; //到char的const指针 char const *pc1; //到const char的指针 const char *pc2; //到const char的指针(后两个声明是等同的) 且注意:允许把非 const 对象的地址赋给指向 const 对象的指针,不允许把一个 const 对象的地址赋给一个普通的、非 const 对象的指针。 用法3:const修饰函数传入参数 void Fun( const A *in); //修饰指针型传入参数 void Fun(const A &in); //修饰引用型传入参数 用法4:修饰函数返回值 用法5:const修饰成员函数 (c++特性) const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数; const对象的成员是不能修改的,而通过指针维护的对象确实可以修改的; const成员函数不可以修改对象的数据,不管对象是否具有const性质

C++常对象,常变量,常成员函数详解(转)

匿名 (未验证) 提交于 2019-12-03 00:22:01
const const const const const cctwl; public private 说明: . 如果类有多个默认构造函数 必须都 初始化常数据成员。 4 A 错误一:不能对常数据成员在类中初始化、要通过类的构造函数,只有静态常量才能这样初始化。 cctwl B const < > const const const const A const B const C D 1 2 3 (三) const > > 1 A PS: 常成员函数可以引用const数据成员,也可以引用非const的数据成员; const数据成员可以被const成员函数引用,也可以被非const的成员函数引用; 常成员函数不能调用另一个非const成员函数。 文章来源: C++常对象,常变量,常成员函数详解(转)

静态方法和属性可以被继承吗?

匿名 (未验证) 提交于 2019-12-03 00:22:01
结论:静态方法和属性可以被继承, 但是不能被重写。 我们将结论延伸一下: 我们知道,类的是由成员变量和方法组成的,成员变量代表类的属性,而方法则代表类的行为。 而具体根据静态与否,可以分为 1.静态的成员变量 2.非静态的成员变量 3.静态的方法 4.非静态的方法 下边给出延伸的结论: 上述的四种成员变量和方法, 只有非静态的方法可以被继承并且被重写(override) 而另外的三种,静态的成员变量/方法、非静态的成员变量, 只能被继承,但是不能被重写,而是被隐藏 在java中多态之所以能实现,主要依赖于继承和重写。有了继承和重写,就可以实现父类的引用指向不同的子类对象。而重写的最主要功能则是:在父类引用,调用子类重写的方法之后,调用的是子类重写的方法,也可以理解为,子类重写的方法优先级高于父类。但是对于隐藏来说,则没有这种优先级的“特权”。 下边我们来通过具体的代码来验证结论 package cn.qiaoh.inheritance; public class A { public static String staticStr = "A静态成员变量"; public String str = "A非静态成员变量"; public static void staticMethod() { System.out.println("A静态方法"); } public void