JAVA自学日记——Part Ⅱ
今天学习了类与对象,其中关于this关键字的用法,static静态变量与静态方法,以及引用传递需要特别注意一下。
首先是引用传递:

在本段程序中可以通过进行外部对类对象的属性赋值来更改,同时也可以通过外部方法来对类对象属性进行修改。最后的结果为:

值得注意的地方为:如果将temp的类型改为String类型,结果仍然被改变。String在堆空间内是无法被修改的,但是在类对象内,每次对属性的修改都会再次开辟新空间,如果仅仅在主方法内进行字符串的修改,其输出结果是不会有变化的:

下面为this关键字的使用方法:
1.表示类中的属性和调用方法。
2.调用本类中的构造方法。
3.表示当前对象。
例如在构造方法中
public people(String name,int age){
this.name = name;
this.age = age;
}
通过这种方法才可以达到赋值的目的,this来表示本类中的属性,没有this关键字则无法进行赋值。
用this关键字可以调用本类中的构造方法。
在上面的构造方法的基础上再添加一个无参数的构造方法。
public people(){
System.out.println("无参数构造函数");
}
想要在构造方法是调用此无参构造方法,需要将原构造方法改写为:
public people(String name,int age){
this(); //一定要把调用写到最开始,否则编译错误
this.name = name;
this.age = age;
}
第三种用途就是用来表示当前对象:
Static关键字的使用:
被Static修饰的成员被称为静态成员,不用static修饰的叫做实例成员。
Static变量相当于全局变量,被保存在公共存储单元中,类中若含有static变量,必须要独立于方法之外。
与静态变量相同,用static修饰的方法是属于类的静态方法:
1.非static方法是属于某个对象的方法。static方法是属于整个类的,被所有对象共用。
2.static方法不能操纵和处理属于某个对象的成员,只能访问static成员变量或调用static成员方法,不能访问实例变量和实例方法。
3.在静态方法中不能使用this或super。
4.调用静态方法是,最好使用类名直接调用。
JAVA自学日记——Part Ⅱ的更多相关文章
- JAVA自学日记——Part Ⅲ
终于来到了可视化窗口制作的部分了,从学习JAVA之前,到开始入手学习,一直到现在,都在盼望着有一天可以自己写出一款有界面而且是很美观的应用程序,今天算是一个真正开始的时间节点,值得纪念. 内容有很多, ...
- JAVA自学日记——Part Ⅰ.
和C++比较相似,Java同样是面向对象的设计语言,在基础的语句上有一些不大的差别,经过两天的学习,大概的了解了在eclipse中如何进行简单的编程,解决一些简单的问题,诸如在学习C时做过的“字符串倒 ...
- 【转】JAVA自学之路
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- Java自学之道全文下载地址
道可道非常道,名可名非常名. Java自学之道博大精深,自己只是将理论和实际相结合,进行了简单总结. Java自学之道全文可在自己的博客下载 http://my.oschina.net/mkh/bl ...
- Java自学成长路线(转载)
JAVA自学之路 一:学会选择 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅 ...
- JAVA自学笔记09
JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...
- JAVA自学笔记05
JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...
- JAVA自学笔记06
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...
- JAVA自学笔记04
JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...
随机推荐
- 使用RT3070使开发板上网
原文地址:http://www.cnblogs.com/NickQ/p/8973880.html 使开发板上网 USB驱动部分 在arch/arm/mach-s3c2440/mach-smdk2440 ...
- 使用jieba导入引用方法时,报错AttributeError: module 'jieba' has no attribute 'cut'
一.问题描述 import jieba导入后,使用jieba.cut()方法时报错AttributeError: module 'jieba' has no attribute 'cut' 二.问题分 ...
- Kotlin基础篇(一)
写在前面: 因为工作需要,目前转安卓开发,用的IDE是AS3.2版本,语言的话,用的是Kotlin.由于之前是做.NET的,没接触过这方面的东西,所以完全是小白一枚.所以想着开个博客,以此来记录自己的 ...
- 由Handle转换为控件
Control c = Control.FromHandle(this.textBox1.Handle); TextBox f = c as TextBox;
- 大数据入门第七天——MapReduce详解(一)入门与简单示例
一.概述 1.map-reduce是什么 Hadoop MapReduce is a software framework for easily writing applications which ...
- 【html】标签的分类
一.标签的分类 1. 块状元素 : 独占一行, 宽高,行高,顶底部边距都可以进行设置 <div> <p> <h1-h6> <ol> <ul> ...
- #6435. 「PKUSC2018」星际穿越
考场上写出了70分,现在填个坑 比较好写的70分是这样的:(我考场上写的贼复杂) 设\(L(i)=\min_{j=i}^nl(j)\) 那么从i开始向左走第一步能到达的就是\([l(i),i-1]\) ...
- SQL Server Management Studio 评估期已过
SQL2008破解: (1)将SQL安装光盘(或者ISO)放进去运行,进入安装界面. (2)选择“维护”中的“版本升级”,如图: (3)按照版本升级的向导,先输入产品密钥,也就是正式企业版的序列号: ...
- layer.msg(msg, time, parme)设置图标问题
layer.msg只提到3个参数,实际上有第4个参数,第4个参数就是msg关闭后执行的回调. layer.msg('提示', 2, 1, function(){}) 第一个参数:提示 第二个参 ...
- bootstrap学习笔记(4)
bootstrap辅助类 总结几个常用的辅助类 .text-hide将页面元素所包含的文本设置为透明并且字体设置为0所以文本就看不见了 .hidden将页面的元素visible属性设置为hidden; ...