在Java编程中,变量是存储数据的基本单元。根据变量的定义位置和作用范围,Java中的变量可以分为静态成员变量和实例成员变量。理解这两种变量的区别和使用场景,是掌握Java编程的重要一步。本篇文章将详细介绍静态成员变量和实例成员变量的定义、用法及其区别,帮助你全面理解这些重要概念。
学习java编程思想--类的初始化p146 类的加载顺序 * 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类 * 2类初始化先初始化static成员变量和static---> * 2先初始化父类的static成员变量和static * 3再初始化本类的static成员变量和static * 类加载之后,对象创建开始 * 1先加载父类的非静态成员变量(静态成员变量在类初始化的时候已经加载,非静态成员变量要随对象的创建而初始化) * 2先加载父类的构造函数 * 3再加
在说明static关键字的第三个用法时,我们有必要重新梳理一下一个对象的初始化过程。以下面的代码为例: package com.dotgua.study; class Book{ public Book(String msg) { System.out.println(msg); } } public class Person { Book book1 = new Book("book1成员变量初始化"); static Book book2 = new Bo
static可以节省大量的冗余空间,堆区的String country指向数据区的首地址,类似于栈区指向于堆区。
学习的过程就是填坑的过程,可不要偷懒想着跳过去,你现在跳过去,就相当于给自己挖了一个坑,你迟早会掉进去的,为了避免不掉坑,所以,努力填坑吧!
静态成员归属 : 静态成员变量 是特殊的成员变量 , 是 类所有的 成员 , 而不是对象所有的成员 ;
静态成员变量(被static修饰,属于类、加载一次、内存中只有一份)。直接用 类名 访问即可,因为类只有一个,所以静态成员变量在内存区域中也只有一份,所有的对象都可以共享该变量。
声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化。
static成员变量,在编程中我们时常都会遇到,那么你是否对static变量以及static成员函数有一定深入的认识呢?
在最开始C中引入了static关键字可以用于修饰变量和函数,后来由于C++引入了class的概念,现在static可以修饰的对象分为以下5种:
平时我们在写类的时候,类中的成员变量,我们一般是通过对象名来访问public成员变量的,一般private(私有)的成员变量,对象是不能直接访问的;同时我们要明白每个对象的成员变量都是专属的,而且成员变量是不能在对象之间共享的,这就是专属性。下面我们来做一个小的程序需求来慢慢引出静态成员变量:
当类中的方法全部都是 static 关键字修饰时 ,它的构造方法最好作为 private 私有化,理由是方法全是 static, 不知道的人会去new对象去调用,需要调用构造方法。 但 static的方法直接用类名调用就行!
07.01_面向对象(构造方法概述和格式) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值 07.02_面向对象(构造方法的重载及注意事项) A:案例演示 构造方法的重载 B:构造方法注意事项 a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。 b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。 注意:这个时候,如果我们还想使用无参构造方法,
Static变量 static关键字 在类中用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时初始化,对于该类的所有对象来说,static成员变量只有一份。 可以通过引用或者类名访问静态成员 原来一个类里面的成员变量,每new一个对象,这个对象就有一份自己的成员变量,因为这些成员变量都不是静态成员变量。对于static成员变量来说,这个成员变量只有一份,而且这一份是这个类所有的对象共享。 ◆在类中,用static声明的成员变量为静态变量,或者叫:类属性、类变量。 (注意:静
上图,类Person就像一个模板,per和 person2都是对象,都可以使用Person这个类
它可以修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象。
在Java中,被static修饰的成员变量,称为类成员。其不属于某个具体的对象,类成员只有一份且是共享的在方法区中。
用static修饰的成员变量(类变量)可以直接使用,不需要先创建一个类的实例。可以直接(类名.类变量)来使用。
假设现在有5名同学,他们的性别、年龄可能各不一样,但是上课的教室一样的,你会怎么去定义这个类呢?这里面有一个共同点,教室是一样的,你如果把教室设置成对象的成员变量,那么每new一个对象,都会包含这个成员变量,造成空间上的浪费和不必要的麻烦。我们的本意是想要共享,而不是每个对象都存一份。
4.1.类是什么? 1.类–类型–数据类型—复合数据类型—自定义复合数据类型 为什么有复合数据类型? 基本数据类型就8种,在开发中远远不够,所以我们就需要一个可以根据自己的需求随时能制作出一个自己需要的数据类型。 2.类–具有共同性质的一组事物的群体。 人类。 在java中用来描述具有共同性质的一组事物的自定义的复合数据类型—类。 复合数据类型的本质—【根据自己的需求制作自己需要的数据类型的模式/规则/公式】 4.2.如何编写一个Java类? 通过class关键字来创建一个类 {}—-类体 例如:
final修饰可以保证安全性,比如数组的长度属性,String类,这些都是final修饰的,保证不可变
步骤 获取成员变量信息: obj.getClass() 获取类类型对象 成员变量也是对象,java.lang.reflect.Field 类中封装了关于成员变量的操作: getFields() 方法获取的是所有的public的成员变量的信息 getDeclaredFields() 获取的是该类自己声明的成员变量的信息 getType() 得到成员变量的类型的类类型 getName() 得到成员变量的名称 获取成员变量构造函数信息: obj.getClass() 获取类类型 构造函数也是对象,java.la
声明:本文为原创,作者为 对弈,转载时请保留本声明及附带文章链接:http://www.duiyi.xyz/c%e5%ae%9e%e7%8e%b0%e9%9b%b7%e9%9c%86%e6%88%98%e6%9c%ba-14/
面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将功能实现连接起来 面向过程: 1.把冰箱打开 2.把大象放入 3冰箱关起来
9:面向对象的练习题(掌握) (1)标准的手机类的定义和测试 (2)Demo类有求和方法,Test类进行测试。 什么时候定义成员变量? 当该变量是用来描述一个类的时候。 (3)长方形案例
全局(静态)存储区:分为data段和bass段。data段(全局初始化区)存放初始化的全局变量和静态变量;bass段(全局未初始化区)存放未初始化的全局变量和静态变量。程序运行结束时自动释放。其中bass段在程序执行之前会被系统自动清0,所以未初始化的全局变量和静态变量在程序执行之前已经为0。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。
之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量、局部变量和静态变量。变来变去太容易让人搞晕了,挑拣出来梳理一下喽!
其实这些变量都之所以叫局部变量,其作用域也只限于声明它的方法体内。在方法被调用时,这些局部变量获得内存空间,到方法执行结束时,他们所占据的内存空间就被释放。
本文主要涉及Java的面向对象知识点有类和对象,对象内存,成员变量和局部变量,封装,构造方法。
public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。 static: 被 jvm 调用,不用创建对象,直接类名访问 void: 被 jvm 调用,不需要给 jvm 返回值 main: 一个通用的名称,虽然不是关键字,但是被 jvm 识别 String[] args: 早期出现是为了接收键盘录入数据的。
============================================================================= =============================================================================
●在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
C 语言中 , 数据 ( 变量 ) 和 行为 ( 函数 ) , 是 分开声明 的 , 数据 和 行为 之间 没有 关联性 , C 语言中不支持 数据 和 行为 的 封装 ;
了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这个就是面相过程. 而使用面相对象的话.我们直接调用别人写好的sort()方法即可.
作用域:从定义的这个方法开始到结束,只能在当前方法中使用 例如:a和name只能在show方法中被使用
1. 静态成员变量本质上是全局变量,哪怕一个对象都不存在,类的静态成员变量也存在;
对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础。抽象、封装、继承、多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识。首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性。以下是本文的目录大纲:
大家好,又见面了,我是你们的朋友全栈君。 变量名首写字母使用小写,如果由多个单词组成,从第2个单词开始的其他单词的首写字母使用大写。
权限修饰符和常用关键字学习 Public(公共权限) public:(公共权限) 可以修饰类,成员变量,成员方法,构造方法 被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符 public class Demo{ } Private(私有权限) private:(私有权限) 可以修饰成员变量,构造方法,成员方法,不能修饰类(外部类,内部类不考虑) 被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。 public class Demo {
大家好,我是多选参数的程序锅,一个正在 neng 操作系统、学数据结构和算法以及 Java 的硬核菜鸡。下面是本章的内容提纲:
静态成员是指成员变量和成员函数前加上关键字static。 静态成员分为:静态成员变量、静态成员函数; 静态成员变量: 所有对象共享同一份数据 在编译阶段分配内存 类内声明,类外初始化 静态成员函数: 所有对象共享同一个函数 静态成员函数只能访问静态成员变量 #include<iostream> using namespace std; class Person{ public: //类内声明,静态成员变量也是有访问权限的 static int m_a; static void fun
需求 :首先定义一个手机类,然后定义一个手机测试类,在手机测试类中通过对象完成成员变量和成员方法的使用
需求 : 首先定义一个手机类,然后定义一个手机测试类,在手机测试类中通过对象完成成员变量和成员方法的使用
在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。
作者:Winston 链接:https://www.zhihu.com/question/294221894/answer/493705474 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。
一、final 1、final可以用来修饰类,方法,成员变量, 2、final修饰类不可以被继承,但是可以继承其他类。 3、final修饰的方法不可以被覆盖,但父类中没有被final修饰方法,子类覆盖后可以加final。 4、final修饰的变量称为常量,这些变量只能赋值一次。 修饰成员变量,需要在创建对象前赋值,否则报错。
领取专属 10元无门槛券
手把手带您无忧上云