局部变量

Java基础(八)

∥☆過路亽.° 提交于 2020-02-05 07:40:27
面向对象(面向对象是基于面向过程的) 特点:1)更符合生活中的思想行为习惯 2)让复杂的事情简单化 3)让我们从执行者变成指挥者 三大特征:封装,继承,多态。 基本类型与引用类型:基本类型作为方法的形式参数,形式参数的改变不会影响实际参数 引用类型作为方法的形式参数,形式参数的改变会直接影响实际参数 局部变量和成员变量的区别: 1)在类中的位置不同 成员变量:成员位置—在类中,方法外定义的变量 局部变量:在方法定义中,或者方法声明上的变量 2)在内存中的位置也不同 成员变量:在堆内存中 局部变量:在栈内存中 3)生命周期 成员变量:随着对象的创建而存在,随着对象的回收而消失 局部变量:随着方法调用而存在,随着方法的调用完毕而消失 4)初始化不同 成员变量:跟对象相关的,描述一个对象的属性(成员变量存在一个系统默认初始化),当然也可以直接赋值 局部变量:在使用之前,必须初始化,否则编译不通过 注:当成员变量名称和局部变量名称一致,通过成员方法访问变量名称的时候,采用就近原则! 局部位置没有,成员位置找! 匿名对象(没有名字的对象) 格式:new 类名(); 匿名对象应用场景: 1)实际开发中,仅使用一次即可! 匿名对象直接在堆内存开辟空间,使用完毕,立即从内存中释放调用 2)使用匿名对象的时候,可以链式编程(开发中不建议使用这种方式) new 类名1().方法名1(new 类名2()

JS数据类型和变量

狂风中的少年 提交于 2020-02-04 23:47:06
一、定义变量的方式 1、隐式定义: < script type = "text/javascript" > a = "Hello JavaScript" ; alert ( a ) ; < / script > 2、显式定义: < script type = "text/javascript" > var a ; a = "true" ; alert ( a ) ; < / script > 二、类型转换 1、对于减号运算符,因为字符串不支持减法运算,所以系统自动将字符串转成数值。 2、对于加号运算符,系统直接将数值转为字符串,就成了两个字符串进行连接运算。 例: < ! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta http - equiv = "X-UA-Compatible" content = "ie=edge" > < title > Document < / title > < / head > < body > < script type = "text/javascript" > var a = "3

Python学习,第八课 - 函数

一个人想着一个人 提交于 2020-02-04 21:55:42
本次讲解函数,由于内容比较多,小编列了个大纲,主要有一下内容: 1. 函数基本语法及特性 2. 函数参数 3.局部变量 4. 返回值 5.嵌套函数 6.递归 7.匿名函数 8.高阶函数 9.内置函数 1. 函数基本语法及特性 函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 函数的特性: 减少重复代码 使程序变的可扩展 使程序变的易维护 函数的语法定义 直接上代码: # def 是定义函数的关键字 def test():#test既是函数名 print('学习Python的第一个函数') test() #调用函数 同时函数也可以带参数 a, b = 1, 3 # 带参函数 def test(x, y): # x 和 y 即是在我们调用函数时传入的参数 return x + y # 返回执行的结果 c = test(a, b) # 把函数返回结果赋值给 C print(c) 2. 函数参数 在说函数参数前,大家需要了解一个知识点, 形参 & 实参 何为形参? 既变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。 因此,形参只在函数内部有效,函数调用结束返回主调用函数后则不能再使用该形参变量 何为实参? 既可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值

变量详解

我们两清 提交于 2020-02-04 19:13:52
Java变量有且仅有成员变量和局部变量 类中定义成员变量:类变量(有static)、实例变量(无static) 方法中定义局部变量:形参、普通局部变量、代码块的局部变量 判断变量:先看位置,然后看static 一、局部变量 局部变量:必须由程序员显示指定初始值,然后才能使用,否则编译报错–可能未初始化变量**。 代码块的作用于很小:离开了代码块,代码块中的局部变量就失效 局部变量的作用域很小,只在方法里有效;离开了方法,局部变量立即失效。 二、成员变量 成员变量:可以不需要显示指定初始值,系统可以自动分配初始值;初始值规则与数组元素的初始值规则完全相同。 程序中,类本身只有一个,程序一定先有类,再有对象(实例)! 类变量:类变量属于类本身,当系统初始化类时,就会为类分别分配空间,并执行初始化。 实例变量:实例变量属于对象本身,系统每次创建对象时,都需要为该对象的实例变量分配空间,并执行初始化。 严格来说:类变量应该由类本身进行访问;实例变量应该由对象进行访问。但Java语法允许通过对象访问类变量----唯一的作用是出考题。但实际上,Java依然会将对象替换成对象所属的类。 建议:遇到用类调用类变量、类方法。如果遇到对象调用类变量、类方法的情况,第一件事先把对象换成类。 public class Computer { String color ; //实例变量 int price ;

类成员函数参数和类成员变量的可见性

痞子三分冷 提交于 2020-02-03 00:10:06
类成员函数参数和类成员变量的可见性 一、如下示例 #include "iostream" using namespace std; class point{ public: int x; int y; point() {} point(int a,int b){x=a;y=b;} void output() { cout<<x<<endl<<y<<endl; } void input(int a,int y) { x=a; y=y; } }; int main() { point pt(5,5); pt.input(10,10); pt.output(); return 1; } 二、问题 输出结果为10,5。不是我们10,10,为什么呢? 因为相对局部变量隐藏了外层局部变量的缘故。在 void input(int a,int y) { x=a; y=y; } 函数中,类的成员变量y被形参y所屏蔽隐藏,所以实际上是自己给自己赋值。 三、解决方法两个: 1、void input(int a,int b) { x=a; y=b; } 2、用this指定 void input(int x,int y) { this.x=x; this.y=y; } 来源: CSDN 作者: hopegrace 链接: https://blog.csdn.net/hopegrace/article

JVM认知(一)

别等时光非礼了梦想. 提交于 2020-02-02 03:42:56
接下来的几篇博客只是对JVM的一个简单认知,主要是对JVM的组成部分以及程序的运行流程的一个介绍,并没有深入到每一个层次的每一个点,如果有错或者以后掌握到更深入层次的知识后,还会更新的。 JVM:Java Virtual Machine(Java虚拟机) 先看一张图,在最开始接触Java的时候的HelloWorld的运行: 我们编写的Java文件,经过javac指令,编译成为class字节码文件,再将字节码文件放到Java运行环境中运行。我们都知道,Java是个跨平台的语言,那么如何实现在windows环境以及linux环境都可以运行呢?JVM就起到了关键作用。JVM就是从软件层面屏蔽不同操作系统在底层硬件与指令的不同。 那么,JVM到底是什么,或者说长什么样呢? 我们来看下JVM的模型图: 可以看到,JVM主要由三部分组成:类装载子系统、运行时数据区、字节码执行引擎。其中运行时数据区则是主要部分。 首先来看栈部分:栈用来存储局部变量。 先来看一段简单代码: package com . hpu . dong ; public class test { public static final int m = 100 ; public static User user = new User ( ) ; public int add ( ) { int a = 1 ; int b = 2

JAVA匿名内部类(Anonymous Classes)

霸气de小男生 提交于 2020-02-01 22:30:01
1.前言 匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在完成了手头的开发任务后,查阅了一下JAVA官方文档,将匿名内部类的使用进行了一下总结,案例也摘自官方文档。感兴趣的可以查阅官方文档( https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html )。 2.匿名内部类 匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类(Anonymous classes enable you to make your code more concise. They enable you to declare and instantiate a class at the same time. They are like local classes except that they do not have a name. Use them if you need to use a local class only once.) 本节包括以下几个方面:

final成员变量与final局部变量

风格不统一 提交于 2020-01-31 05:22:32
final修饰符 final关键字可以修饰类、变量和方法 final修饰的变量,一旦该变量被赋予初始值,以后则不能改变(即获得初始值之后不能被重新赋值);final可以修饰成员变量(实际变量、类变量)、局部变量、形参。 final成员变量 final修饰的成员变量必须由程序员显示的指定初始值; final修饰的类变量:必须在静态初始化块中指定初始值或声明该变量时指定初始值,并且只能在其中一个地方指定; final修饰的实例变量:必须在非静态初始化块中、声明该实例变量的地方和构造器中指定初始值,并且只能在其中一个地方指定; 注:final修饰的实例变量不能在静态初始化中指定初始值,因为静态初始化是静态成员,不能访问非静态成员(实例变量);类变量不能在普通代码块中指定初始值,因为类变量在类初始化阶段已经被初始化,所以在普通代码块中不能被重新赋值。 eg: public class FinalVariableTest { //定义成员变量时指定默认值 final int a = 5 ; //以下变量将在构造器或代码块中分配初始值 final String str ; final int c ; final static double d ; //既没有在普通代码块中、构造器中,也没有在声明时指定初始值的实例变量也不能在普通方法中指定初始值 final char ch ; //初始化块

c语言静态局部变量

北城余情 提交于 2020-01-30 12:33:50
使用实例 static int n = 10 ; 一般在函数中使用 如 void fn_static ( void ) { static int n = 10 ; printf ( "static n=%d\n" , n ) ; n ++ ; printf ( "n++=%d\n" , n ) ; } 第一次使用函数时输出10,11 第二次使用函数时输出11,12 因为代码static int n = 10 ;只会在第一次跑时赋值,并且这里面的n在函数跑完以后会保存,下一次n就等于n+1 可以做到保存一个函数里的变量 来源: https://www.cnblogs.com/zhjc/p/12242356.html

JAVA中的成员变量与局部变量

非 Y 不嫁゛ 提交于 2020-01-30 03:53:51
成员变量 成员变量:在类中定义的变量,分为类变量(static修饰)和实例变量(没有satic修饰); 类变量作用域:从该类开始到该类结束,作用域与该类的生存范围相同(与类本身共存亡); 实例变量作用域:从该实例对象被创建开始直至该实例对象销毁,作用域与该实例对象的生存范围相同(与实例共存亡); 1、类存在,访问该类的类变量: 类.类变量 ( Person.eyeNum); 2、实例存在,访问该类的实例变量:实例.实例变量 (p.name); 3、该类实例访问类变量:实例.类变量 ( p.eyeNum)(注意:由于该实例并不拥有类变量,所以通过实例修改类变量的值时,修改的依然是类的类变量,与通过类修改类变量的结果完全相同,修改后其他实例访问该类变量时,获取的修改后的类变量的值) eg: class Person { //定义一个实例变量 public String name ; //定义一个类变量 public static int eyeNum ; } public class PersonTest { public static void main ( String [ ] args ) { //第一次使用Person类,该类自动初始化,eyeNum变量输出为0 System . out , println ( "eyeNum变量值" + Person . eyeNum ) ;