java===java基础学习(13)---this,static(静态变量和静态方法)的使用
- package dog;
- public class PersonAndDog {
- public static void main(String[] args)
- {
- Dogs da_huang = new Dogs(12,"da_huang");
//共同引用da_huang这条狗- person p1 = new person(12,"李明",da_huang);
- person p2 = new person(13,"jack",da_huang);
- p1.get_info();
- p2.get_info();
- }
- }
- class Dogs
- {
- private int age;
- private String name;
- public Dogs(int age ,String name)
- {
- this.age = age;
- this.name = name;
- }
- public String get_name()
- {
- System.out.println("The dog is named"+this.name);
- return this.name;
- }
- }
- class person
- {
- int age;
- String name;
- Dogs dog;
- public person(int age ,String name, Dogs dog)
- {
- this.age = age;
- this.name = name;
- this.dog = dog;
- }
- public void get_info()
- {
- System.out.println("我的名字叫"+this.name+",我今年"+this.age+",岁。我的狗叫"+this.dog.get_name());
- }
- }
this主要用来区分不同的对象,他们的成员属性的。
this属于一个对象,不属于一个类。
区分成员变量和局部变量
代表当前对象
构造器与构造器之间的调用
static的使用
静态变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
定义语法:
访问修饰符 static 数据类型 变量名;
如何访问类变量
类名.静态变量名 或者 对象名.静态变量名
- package dog;
- public class Static {
- public static void main(String[] args)
- {
- Child c1 = new Child("竹子");
- c1.add();
- Child c2 = new Child("花花");
- c2.add();
- Child c3 = new Child("草草");
- c3.add();
- //count 是静态变量,因此可以被任何一个对象访问
- System.out.println("孩子人数为="+c3.count);
- }
- }
- class Child
- {
- String name;
- static int count; //count 是静态变量,因此可以被任何一个对象访问
- public Child(String name)
- {
- this.name = name;
- }
- public void add()
- {
- System.out.println(this.name+"加入到游戏中了!");
- count++;
- }
- }
- public class Demo3_2 {
- static int i =1;
- static
- {
- //该静态区域块,只被执行一次
- System.out.println("静态代码区");
- i ++;
- }
- public Demo3_2()
- {
- System.out.println("构造函数");
- i++;
- }
- public static void main(String []args)
- {
- Demo3_2 t1 = new Demo3_2();
- System.out.println(t1.i); //
- Demo3_2 t2 = new Demo3_2();
- System.out.println(t2.i); //
- System.out.println(Demo3_2.i);
- }
- }
- //注意一点,即使不创建新的对象。静态代码区域块的也会被执行,且执行一次
- package dog;
- public class Demo3_3 {
- public static void main(String []args)
- {
- Stu s1= new Stu(12,"王二",4550);
- Stu s2 = new Stu(13, "len",5000);
- System.out.println(Stu.get_count()); //这里直接使用的是类名.类方法名的形式
- }
- }
- class Stu
- {
- int age;
- String name;
- int xuefei;
- static int count;
- public Stu(int age, String name, int xuefei)
- {
- this.age = age;
- this.name=name;
- this.xuefei=xuefei;
- count += xuefei;
- }
- public static int get_count()
- {
- //静态方法(类方法),是属于对象实例的,形式如下:
- //访问修饰符 static 数据返回类型 方法名(){}
- //注意: 静态方法(类方法)中不能访问非静态变量(类变量)
- //使用: 类名.静态方法名 或者 对象名.静态方法名
- return count;
- }
- }
静态变量
加上static称为类变量或静态变量,否则称为实例变量
静态变量是与类相关的,公共的属性
实例变量属于每个对象个体的属性
静态变量可以通过 类名.静态变量名 直接访问
静态方法
静态方法属于与类相关的,公共的方法。
实例方法属于每个对象个体的方法。
静态方法可以通过 类名.静态方法名 直接访问
java===java基础学习(13)---this,static(静态变量和静态方法)的使用的更多相关文章
- 《Java基础知识》Java static关键字以及Java静态变量和静态方法
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...
- Java入门基础学习,成为一个Java程序员的必备知识
引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...
- Java【基础学习】之暴力求素数【用数组返回】
Java[基础学习]之暴力求素数[用数组返回] */ import java.util.*; public class Main{ public static void main(String[] a ...
- Java知多少(31)static关键字以及Java静态变量和静态方法
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...
- JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- 转载:JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- java静态变量、静态方法和静态代码段
先上实例 public class TestStatic { public static String staticString = "this is a static String&quo ...
- 谈谈java中静态变量与静态方法在有继承关系的两个类中调用
谈谈java中静态变量与静态方法在有继承关系的两个类中调用 学习的中如果遇到不明白或者不清楚的的时候,就是自己做些测试,自己去试试,这次我就做一个关于静态变量和静态方法在有继承关系的两个类中的问题测试 ...
- 【转】JAVA的静态变量、静态方法、静态类
转自:http://blog.csdn.net/zhandoushi1982/article/details/8453522/ 静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. ( ...
- Java中的静态变量、静态方法问题
由关键字static所定义的变量与方法,分别称为静态变量和静态方法,它们又都被称为静态成员 1.静态方法 无需本类的对象也可以调用此方法,调用形式为“类名.方法名”,静态方法常常为其他类提供一些方法而 ...
随机推荐
- RT-thread 设备驱动组件之SPI设备
本文主要介绍RT-thread中的SPI设备驱动,涉及到的文件主要有:驱动框架文件(spi_dev.c,spi_core.c,spi.h),底层硬件驱动文件(spi_hard.c,spi_hard.h ...
- Elasticsearch Query DSL备忘(1)(Constant score query和Bool Query)
Query DSL (Domain Specific Language),基于json的查询方式 1.Constant score query,常量分值查询,目的就是返回指定的score,一般都结合f ...
- usaco中遇到的问题
numbers are integers with unique digits 意思是数字中的每一个数字都是不一样的& 让一个图成为强连通图只需添加max(出度为0,入度为0)的点,然后如果图 ...
- BZOJ3165 & 洛谷4097:[HEOI2013]Segment——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3165 https://www.luogu.org/problemnew/show/P4097 要求 ...
- bzoj2064: 分裂(集合DP)
......咸鱼了将近一个月,因为沉迷ingress作业越来越多一直没时间搞OI呜呜呜 题目大意:有一个初始集合(n个元素)和一个目标集合(m个元素)(1<=n,m<=10),两个操作 ...
- 国庆 Day1
This is a 玄学 exam A.年轮蛋糕 最小的最大,二分首选 断环为链,check(x),x为答案,然后将每个大于x的子区间记录下来 如果有大于3个的话,那么x就可以是答案 那么·,在优化下 ...
- RGB向yuv的转化最优算法,快得让你吃惊!
朋友曾经给我推荐了一个有关代码优化的pdf文档<让你的软件飞起来>,看完之后,感受颇深.为了推广其,同时也为了自己加深印象,故将其总结为word文档.下面就是其的详细内容总结,希望能于己于 ...
- Hdu3579 Hello Kiki
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 洛谷:P2292 [HNOI2004]L语言(DP+Trie树)
P2292 [HNOI2004]L语言 题目链接:https://www.luogu.org/problemnew/show/P2292 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有 ...
- [ubuntu]对指定区域截图
ctrl+shift 鼠标变成正十字. 按住右键就可以随意截图了. 设置方法: 打开系统设置面板 system settings --> keyboard --> shortcuts - ...