实例变量

Java 修饰符

强颜欢笑 提交于 2020-01-16 01:19:22
Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明: public class className { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] arguments) { // 方法体 } 访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。 默认的,也称为default,在同一包内可见,不使用任何修饰符。 私有的,以private修饰符指定,在同一类内可见。 共有的,以public修饰符指定,对所有类可见。 受保护的,以protected修饰符指定,对同一包内的类和所有子类可见。 默认访问修饰符-不使用任何关键字 使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。 实例: 如下例所示,变量和方法的声明可以不使用任何修饰符。 String

Java——修饰符详解

╄→гoц情女王★ 提交于 2020-01-15 11:38:55
Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明: 实例: public class className { // ... } private boolean myFlag ; static final double weeks = 9.5 ; protected static final int BOXWIDTH = 42 ; public static void main ( String [ ] arguments ) { // 方法体 } 访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。 默认的,也称为 default,在同一包内可见,不使用任何修饰符。 私有的,以 private 修饰符指定,在同一类内可见。 共有的,以 public 修饰符指定,对所有类可见。 受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。 我们可以可以通过以下表来说明访问权限: 修饰符 当前类 同一包内 子孙类 其他包 public Y Y Y Y protected Y Y Y N default Y Y N N private Y N N N 默认访问修饰符-不使用任何关键字

java中什么是实例变量

假装没事ソ 提交于 2020-01-13 22:59:29
在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。类的每个对象维护它自己的一份实例变量的副本。 实例变量: 定义在类中但在任何方法之外。(New出来的均有初始化) 当一个对象被实例化之后,每个实例变量的值就跟着确定; 实例变量在对象创建的时候创建,在对象被销毁的时候销毁; 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息; 访问修饰符可以修饰实例变量; 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见; 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定; 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。 与局部变量异同 局部变量:定义在方法之中的变量。 1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别) 2. 实例变量的对象赋值为null。 3. 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。 4.

关于java继承的哪些事

青春壹個敷衍的年華 提交于 2020-01-13 03:52:29
引言 本文结合一个例子来说明继承实现的基本原理。 基类 Base 代码如下所示: public class Base { public static int s; private int a; static { System.out.println("基类静态代码块,s:"+s); s=1; } { System.out.println("基类实例代码块,a:"+a); a=1; } public Base(){ System.out.println("基类构造方法,a:"+a); a=2; } protected void step(){ System.out.println("base s:"+s+",a:"+a); } public void action(){ System.out.println("start"); step(); System.out.println("end"); } } 注意: Base 包含一个静态变量s,一个实例变量a,一段静态初始化代码块,一段实例初始化代码块,一个构造方法,两个方法step和action。 子类 Child 代码如下所示: public class Child extends Base{ public static int s; private int a; static { System.out.println(

[Journey with golang] 4. Interface

只愿长相守 提交于 2020-01-13 00:26:42
golang的接口与我已有的认知不太一样,这篇文章要写好一阵子。 接口是一个编程规约,也是一组方法签名的集合。golang的接口是非侵入式的设计,也就是说,一个具体类型实现接口不需要再语法上显式地声明,只要具体类型的方法集是接口方法集的超集,就代表该类型实现了该接口,编译器在编译时会进行方法集的校验。接口是没有具体实现逻辑的,也不能定义字段。 接口变量只有值和类型的概念,所以接口类型变量仍然称为接口变量,接口内部存放的具体类型变量被称为接口指向的“实例”。接口只有声明没有实现,所以定义一个新接口,通常又变成声明一个新接口,二者通用,意思相同。 最常使用的接口字面量类型就是空接口 interface {} ,由于空接口的方法集为空,所以任意类型都被认为实现了空接口,任意类型的实例都可以赋值或传递给空接口,包括未命名类型的实例。注意:未命名类型由于不能定义自己的方法,所以方法集为空,因此其类型变量除了传递给空接口,不能传递给任何其他接口。 golang的接口分为接口字面量类型和接口命名类型,接口声明使用 interface 关键字。接口字面量类型声明语法如下所示: 1 interface{ 2 MethodSignature_1 3 MethodSignature_2 4 } 接口命名类型使用 type 关键字声明,语法如下所示: 1 type InterfaceName

final 实例域

扶醉桌前 提交于 2020-01-12 00:03:34
可以将实例域定义为 fina。l 构建对象时必须初始化这样的域 必须确保在每 一个构造器执行之后, 这个域的值被设置, 并且在后面的操作中, 不能够再对它进行修改 因为在对象构建之后,这个值不会再 被修改, 即没有 setName 方法。 class Employee { private final String name; } final 修饰符大都应用于基本(primitive) 类型域 不可变(immutable) 类的域(如果类 中的每个方法都不会改变其对象 , 这种类就是不可变的类。 例如, String 类就是一个不可变 的类 )。 对于可变的类, 使用 final 修饰符可能会对读者造成混乱。 例如, private final StringBuiIcier evaluations; 关键字只是表示存储在 evaluations 变量中的对象引用不会再指示其他 StringBuilder 对象。 不过这个对象可以更改: 来源: CSDN 作者: 我是一个小白菜 链接: https://blog.csdn.net/zyl_yjy_yi/article/details/103915258

值类型和引用类型在栈和堆中的分配

谁说我不能喝 提交于 2020-01-10 03:25:47
类型基础及背后的工作原理 数据在内存中的分配与传递 值类型和引用类型它们在内存分配与传递上的区别 内存分配 首先要了解一下内存中栈和堆的概念。 栈(Stack) ##栈是一种先进后出的内存结构。 方法的调用追踪就是在栈上完成的。比如我们有一个main方法(程序入口), 在main方法中会调用一个GetPoint的方法。在线程执行时,会将main方法压入栈底(包括编译好的方法指令,参数,和方法内部变量),然后再将GetPoint的方法压入栈底,GetPoint中没有调用其它方法,压栈完毕。出栈顺序是先进后出,也就是后进先出,栈顶的方法GetPoint先执行完毕,然后出栈,所占内存清空,接着main方法执行后出栈,所占内存清空。 //示意图:自己脑补吧... 从上面方法的压栈出栈中可以看出: ##栈只能在一端对数据进行操作,也就是栈顶端进行操作。’ ##栈也是一种内存自我管理的结构,压栈自动分配内存,出栈自动清空所占内存。 另外值得注意的两点: ##栈中的内存不能动态请求,只能为大小确定的数据分配内存,灵活性不高,但是栈的执行效率很高。 ##栈的可用空间并不大,所以我们在操作分配到栈上的数据时要注意数据的大小带来的影响。 堆(Heap) ##堆与栈有所区别,堆在C#中用于存储实实例对象,能存储大量数据,而且堆能够动态分配存储空间。 ##相比栈只能在一端操作,堆中的数据可以随意存取。 #

python命名空间和作用域及local,global,locals(),globals()区别

送分小仙女□ 提交于 2020-01-09 13:28:24
1.命名空间及作用域的基本概念 python命名空间和作用域及local,global,locals(),globals()区别 目录: 1.1.模块级变量运用 2.变量的作用域 3.local,global,locals(),globals()区别 locals查看局部变量 globals查看修改删除全局变量 4.典型错误处理 1.1.命名空间分类: 全局命名空间:记录模块变量,包括函数、类、导入模块、模块级变量和常量 局部命名空间:函数,类,推导式名字空间叫做局部名字空间,记录参数和局部变量 内置命名空间:任何模块均可访问它,存放着内置函数异常 1.2.三种命名空间之间的加载与取值顺序: 加载顺序: 内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载) 取值 ,查找变量顺序: 局部命名空间->全局命名空间->内置命名空间 局部名字空间local 本地- 特指当前函数或类方法。 局部名字空间 Eclosing封闭- 函数体内定义函数 全局名字空间global全局 - 特指当前模块。 内置名字空间 built-in内置- 对每个模块都是全局的。 注意: import module:模块自身被导,保持自已名字空间;module.function在模块的命名空间中运用 from module import:

【编程小白的第一本python入门书】 --学习笔记

拜拜、爱过 提交于 2020-01-08 00:35:08
前言 一直都想学Python,之前粗略看过【Python学习手册(第4版)】,现在基本忘光了(毕竟没怎么用它来写代码)。重新翻开这本书时感觉有些老了,于是随便找了本先看着,快要读完时发现了宝藏——【Python语言程序设计】(据说是斯坦福大学的教材),等这本书看完后再拿那本书巩固、补充好了。 初识变量 变量 用法:变量 = 赋值内容 answer = 42 print() 用法:print(内容) print(answer) print('hello world!') 文件的写入方法 file = open('D:/PythonCode/file.txt', 'w') file.write('hello world') 字符串 用法 可用单引号、双引号或三个引号(连接换行的文本)来表示 连接 what_he_does = ' plays ' his_instrument = 'guitar' his_name = 'Robert Johnson' artist_intro = his_name + what_he_does + his_instrument print(artist_intro) 类型转换 num = 1 string = '1' num2 = int(string) print(num + num2) 乘法 words = 'words' * 3 print

Spring知识点小结

≯℡__Kan透↙ 提交于 2020-01-07 13:52:00
1.Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring AOP:AOP服务; Spring Context:提供框架式的Bean访问方式; Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; Spring ORM:对现有的ORM框架的支持; Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传; Spring MVC:提供面向Web应用的Model-View-Controller实现。 2、Spring 的优点? spring属于低侵入式设计,代码的污染极低; spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性; Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。 spring对于主流的应用框架提供了集成支持。 3.Spring的AOP理解: AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”