有关static静态修饰符的学习心得
1 /**
2 * 不区分本类还是异类,在静态成员被调用必须以类名点取调用,非静态成员必须创建累的实例去调用
3 * 区别:
4 * 1、静态成员的调用:
5 * 在本类(静态与非静态方法)中调用可以省略类名点,直接调用(此处无论是哪里的调用只要改变了属性的值,那么所有的调用都会改变,因为他们都指向内存中的同一个地址)
6 * 2、非静态成员的调用:
7 * 在本类的非静态方法中调用可以省略实例对象的创建,直接调用(这样写不会报错,但是与创建对象再用对象命点用所指向的内容不同了,因为他们指向内存中的不同地址)
8 */
9 package com.test;
10
11 public class StaticTest{
12 int a = 1;
13 static int b = 2;
14 //非静态方法
15 void testa(){
16 System.out.println("一类中的非静态方法");
17 //试验同一类中非静态方法调用静态与非静态变量(方法的调用与变量一样)
18
19 //调用本类静态变量(此处省略了类名点取)
20 StaticTest.b = 12;
21 System.out.println(b);//省略类名点取
22
23 //调用本类非静态变量
24 //此处可以以创建实例对象的方式调用a变量,但是这样的话这里的a就与直接调用a不同了,前者指的是新建对象的属性a,后者则是类的a属性
25 // StaticTest m = new StaticTest();
26 // m.a = 11;
27 // a = m.a;
28 a = 11;
29 System.out.println(a);
30
31 //调用异类静态变量(此处直接调用会报错)
32 // b2 = 14;//报错
33 Qita.b2 = 14;
34 System.out.println(Qita.b2);
35
36 //调用异类非静态变量(此处直接调用会报错)
37 // a2 = 13;//报错
38 Qita x = new Qita();
39 x.a2 = 13;
40 System.out.println(x.a2);
41 }
42 static void testb(){
43 System.out.println("一类中的静态方法");
44 //试验同一类中非静态方法调用静态与非静态变量(方法的调用与变量一样)
45
46 //调用本类静态变量
47 StaticTest.b = 22;
48 System.out.println(b);//此处省略类名点
49
50 //调用本类非静态变量
51 StaticTest y = new StaticTest();
52 y.a = 21;
53 System.out.println(y.a);
54
55 //调用异类静态变量
56 Qita.b2 = 24;
57 System.out.println(Qita.b2);
58
59 //调用异类非静态变量
60 Qita x = new Qita();
61 x.a2 = 23;
62 System.out.println(x.a2);
63 }
64 public static void main(String[] args) {
65 //静态方法调用本类中的非静态方法
66 StaticTest z = new StaticTest();
67 z.testa();
68
69 //静态方法中调用本类中静态方法
70 testb();
71 }
72 }
73 class Qita{
74 int a2 = 3;
75 static int b2 = 4;
76 void testa2(){
77 System.out.println("二类中的非静态方法");
78 }
79 static void testb2(){
80 System.out.println("二类中的静态方法");
81 }
82 }
有关static静态修饰符的学习心得的更多相关文章
- Javase部分回顾(static (静态修饰符),修饰方法,单利的设计模式, 封装)
static (静态修饰符) 1.修饰成员变量 静态变量的访问方式: 方式一 : 通过对象访问. 对象.变量名 ...
- Java之Static静态修饰符详解
Java之Static静态修饰符详解 Java之Static静态修饰符详解 一.特点 1.随着类的加载而加载,随着类的消失而消失,生命周期最长 2.优先于对象存在 3.被所有类的对象共享 4.可以直接 ...
- JAVA中静态修饰符static的学习(初学)
静态修饰符static,用于修饰类中的成员变量和成员函数. 用static修饰的成员变量也可叫做类变量. 什么时候使用静态 什么时候定义静态成员变量? 当对象中出现共享数据时,将该数据定义为静 ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- C# static readonly 修饰符初始化变量
同事问了一个问题,readonly和static啥区别? 我就写了个demo运行了下: /*** * 验证初始化次数:static只初始化一次,无论多少用户访问,在内存中只有一份 * readonly ...
- java静态修饰符static的使用
class Person { private String name; private int age; /* * 假设每个Person对象的国籍都一样, * 那么每次调用都要赋值就会不合理. * 使 ...
- String的实例化与static final修饰符
String两种实例化方式 一种是通过双引号直接赋值的方式,另外一种是使用标准的new调用构造方法完成实例化.如下: String str = "abcd"; String str ...
- private static final 修饰符
java修饰符分类修饰符字段修饰符方法修饰符根据功能同主要分下几种 1.权限访问修饰符 public,protected,default,private,四种级别修饰符都用来修饰类.方法和字段 包外 ...
- 静态修饰符(关键字static)
1.Static修饰的方法或变量通常称为类方法和类属性 2.静态方法中不能使用this和super关键字,也不能做为局部变量使用 3.在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成 ...
随机推荐
- Java Web编程的主要组件技术——Struts入门
参考书籍:<J2EE开源编程精要15讲> Struts是一个开源的Java Web框架,很好地实现了MVC设计模式.通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面联系较少 ...
- Windows Live Writer测试插件
这是用WLW写的,测试 这是图片: 这是地图: 这是代码: 一会重发
- Java [Leetcode 83]Remove Duplicates from Sorted List
题目描述: Given a sorted linked list, delete all duplicates such that each element appear only once. For ...
- linux下查看串口信息
rs232串口通信接口:当通信距离较近时(<12m),可以使用电缆线直接连接,若距离较远,需附加调制解调器. 9个脚针的定义: CDC数据载波检测,RXD接收数据,TXD发送数据,DTR数据中断 ...
- 【CSS】css各种居中方法
水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素.他们起作用的首要条件是子元素必须没有被flo ...
- Android02--debug.keystore的注册信息
1 -- 签名文件的密钥 默认签名文件的密码是:android 该文件的存放点是: 2 -- 签名文件的签名信息 keytool -list -v -keystore C:\Users\motadou ...
- android中sqlite3常用命令
1)打开数据库 在adb shell模式下执行命令sqlite3 + 数据库名称,例如打开email中的EmailProvider.db数据库: 2)sqlite3特殊命令 大多数候,sqlite3读 ...
- poj 1026(置换群)
题意:给你一个变换规则,和一个字符串,问经过k次变换后得到的字符串. 思路:开始的时候试图去找它的整个周期,谁知道周期太大了,各种RE,后来在得知此题需要用置换群来优化,第一次接触置换群学习了下! 代 ...
- Xamarin Mono Android Ios 安装、破解(4.12)
一.Windows下面的安装 1. 安装环境介绍: Win8.1 企业版64位.VS2013,mono-android-4.12.02001,下面的安装过程都是在VS2013已经安装成功之后的操作,本 ...
- CABasicAnimation 使用
1. 基本使用 UIView * view = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 50,50)]; view.backgroundColo ...