JAVA学习笔记10——static+this
来源:互联网 发布:md5加密java代码 密钥 编辑:程序博客网 时间:2024/05/21 01:55
最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。
继续第十篇,这篇内容较少,主要是因为与后面的联系不大,所以单成一篇。
这篇主要讲static与this两个JAVA保留字用法。
首先来说一说static,直译为静止的,在JAVA作为一种修饰的关键字用来修饰变量或者方法,使其成为静态变量或者静态方法。
了解完static的大致内容后我们来看一看static在内存分配图里面的存在情况:
对应代码:
public class Student {//成员变量从属于对象 String name; int id; //静态变量从属于类(内存中放在方法区) static int ss; public static void printSS(){ System.out.println(ss); //静态方法只能引用静态的属性和方法 } public void study(){ printSS(); System.out.println(name+"在學習"); } public void sayHello(String sname){ System.out.println(name+"向"+sname+"說:你好!"); }}
public class Test {public static void main(String[] args) {Student.ss = 323;//不用new,直接拿来用即可Student.printSS();Student s1 = new Student();}}分析上图可以得到以下结论:1,static变量和方法一旦产生便只存在于方法区中,不会存在于对象堆中,它从属于类而和new出来的具体对象无关。2,由于它只产生于方法区中,那么在静态方法里面只能调用静态方法和变量(因为它没有访问对象堆的能力,自然也就无法调用实例变量和方法了)。3,由于非静态方法每一次执行都要加载类所在的方法区,会连同里面的static变量和方法一起加载,所以非静态方法和变量可以调用static变量和方法。
好了,关于static的内容就介绍这么多了,下面开始介绍this:
this关键字是一个隐式参数,每个方法(static除外)都有隐式参数的自动传参,不用写出来也会自动传,传this的时候传的是本身的对象(这是由于new出来的n个对象都共享同一段方法区的代码,如果不用this指明当前调用方法的对象则会引起混乱)。
public class Student { String name; int id; public Student(String name,int id){ this(name); //通过this调用其他构造方法,必须位于第一句! Constructor call must be the first statement in a constructor this.name = name; this.id = id; } public Student(String name){ this.name = name; } public Student(){ System.out.println("构造一个对象"); } public void setName(String name){ this.name = name; } public void study(){ this.name= "张三"; System.out.println(name+"在學習"); } public void sayHello(String sname){ System.out.println(name+"向"+sname+"說:你好!"); }}好了,本篇到此结束。小小地恭喜自己博客写到了十篇,虽然访问量寥寥无几,但是我还是会继续坚持地写下去,积少成多,最终让自己和看到我博客的人都有或多或少的收获。
0 0
- JAVA学习笔记10——static+this
- Java学习笔记1——static和this作用
- Java学习笔记之static与this
- (08)Java学习笔记——面向对象02——关键字this static
- JAVASE学习笔记三——this,static
- java学习笔记(十一)封装、this关键字与static
- 【学习笔记05】java面向对象-this、static
- java学习笔记——static关键字
- java学习笔记——this关键字
- Java笔记(四) this和static
- Java学习笔记:static
- JAVA-This学习笔记
- 我的Java学习之路——关键字final、static、this
- Java学习笔记——static的用法
- java学习笔记7——static和final关键字
- java学习笔记之—final 与 static
- java基础学习笔记第三天 this . static 的用法和值传递,引用传递
- Java学习笔记——this的用法
- xcode功能学习
- FastJSON 原理剖析 以及 和 Jackson的对比 who is the most fast!
- 【翻译原创】(一)MonkeyTalk 工具简介
- java--数据结构特性
- 线段树区间更新——UVA 11992
- JAVA学习笔记10——static+this
- poj 2164 (卷包裹算法)
- 总结2014——迷茫以及迷茫过后的坚持
- 算法导论第16章 贪心算法-活动选择问题
- HTML上划线 中划线 下划线实现
- dbcp 连接 postgresql 报org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int)
- mac下搭建openfire
- Robotium 专题(四): Robotium 中部分常用的方法集锦
- linux0.11源代码在gcc4.3.x gcc4.4.x下编译bochs下模拟