Java构造函数和this关键字
一、 构造函数
/*
一个函数中定义的变量必须要初始化,否则编译会报错
一个类中的数据成员
1、 如果在定义的时候不初始化,则它的值是系统自动分配好的默认值! 如int型为零 boolean型是false
如本程序的A类对象就是这样 2、 如果在定义的同时赋初值, 则是可以的,也就是说该值是生效的.注意在C++中则不可以,在C++中一个类的数据成员不能在定义的同时初始化,它只能在构造函数中初始化
如本程序的A类对象就是这样 3、 如果在定义的同时赋初值,当然生效,但如果在构造函数中又改变了定义时赋的初值,
则该数据成员最终的值就是构造函数中修改之后的那个值,因为:
系统会先执行定义时赋的初值,然后再执行构造函数中赋的初值
如本程序的B类对象就是这样
*/ class A
{
int i;
int j = 10;
boolean flag; void show()
{
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("flag = " + flag);
}
} class B
{
int i;
int j = 10;
boolean flag; public B()
{
System.out.println("以前的值是 " + i + " " + j + " " + flag); i = 88;
j = 88;
flag = true;
} void show()
{
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("flag = " + flag);
}
} class TestConst_3
{
public static void main(String[] args)
{
A aa1 = new A();
aa1.show(); B bb1 = new B();
bb1.show();
}
}
/*
在j2sdk1.4.2_16中的运行结果是:
--------------
i = 0
j = 10
flag = false
以前的值是 0 10 false
i = 88
j = 88
flag = true
--------------
*/
二、 this关键字
/*
关键字this:
1,在普通方法中,关键字this代表方法的调用者,即本次调用了该方法的对象
2,在构造方法中,关键字this代表了该方法本次运行所创建的那个新对象
*/ class A
{
private int i;
public A(int i)
{
this.i = i; //将形参 i 赋给该构造方法本次运行所创建的那个新对象的i数据成员
}
public void show(){
System.out.println("i = " + this.i);
//this表示当前时刻正在调用show方法的对象
//this可以省略
}
} public class TestThis
{
public static void main(String[] args){
A aa1 = new A(100);
aa1.show(); A aa2 = new A(200);
aa2.show();
}
}
Java构造函数和this关键字的更多相关文章
- (转)Java中的static关键字解析
转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: &q ...
- 关于Java中的final关键字
Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时, ...
- 关于Java中的static关键字
Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较 ...
- Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...
- 浅谈Java中的final关键字
浅谈Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)
概念 JMM规范解决了线程安全的问题,主要三个方面:原子性.可见性.有序性,借助于synchronized关键字体现,可以有效地保障线程安全(前提是你正确运用) 之前说过,这三个特性并不一定需要全部同 ...
- 【java中的final关键字】
转自:https://www.cnblogs.com/xiaoxi/p/6392154.html 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量 ...
- java并发系列(六)-----Java并发:volatile关键字解析
在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性.可见性和有序性.只要有一条原则没有被保证,就有可能会导致程序运行不正确.volatile关键字 被用来保证可见性 ...
- java oop 修饰符&关键字
一.修饰符 Java中四种访问权限修饰符: private 缺省(default) protected public 修饰类的成员,用来限定对象对该类成员的访问权限. 修饰符 类内部 同一个包 不同包 ...
随机推荐
- iGson
头文件 #import <Foundation/Foundation.h> #import <objc/runtime.h> #import "NSString+Ut ...
- pythonday
python学习 http://www.cnblogs.com/fengyuhao/p/7168903.html pythonday http://www.cnblogs.co ...
- java框架---->Xstream的使用(一)
Xstream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称.今天我们就简单的学习一下xstream的用法. Xstream的简单实例 项目的结构如下,设计到三个类 ...
- 设计模式之抽象工厂模式(Java实现)
“上次是我的不对,贿赂作者让我先讲来着,不过老婆大人大人有大量,不与我计较,这次还让我先把上次未讲完的应用场景部分给补充上去,有妻如此,夫复何求.”(说完,摸了摸跪的发疼的膝盖,咳咳,我发四我没笑!真 ...
- 【Java nio】java nio笔记
缓冲区操作:缓冲区,以及缓冲区如何工作,是所有I/O的基础.所谓“输入/输出”讲的无非就是把数据移出货移进缓冲区.进程执行I/O操作,归纳起来也就是向操作系统发出请求,让它要么把缓冲区里的数据排干,要 ...
- PHP一句话木马小总结与SQL语句写一句话木马
一.基础类的一句话--功能仅限于验证漏洞了,实际中太容易被查出出来: <?php @eval($_GET["code"])?> <?php @system($_P ...
- 【BZOJ2599】[IOI2011]Race 树的点分治
[BZOJ2599][IOI2011]Race Description 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 100000 ...
- asp.net SessionState模式的配置及使用
由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线(PS:dll变动的时候导致Session).有一种方法可以长期保存session,那就是sessio ...
- HDU Palindrome subsequence(区间DP)
Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/Oth ...
- Mybatis解决sql中like通配符模糊匹配 构造方法覆盖 mybits 增删改
<select id="getRecByNameWildcard" parameterType="Student" resultMap="res ...