- 浏览: 69647 次
- 性别:
- 来自: 天津
文章分类
最新评论
----this和static关键字
public class Car
{
//属性,
static String brand="红旗";
String color;
double price;
public Car(String brand,String color,double price)
{
this(color,price);
this.brand=brand;
}
public Car(String color,double price)
{
this.color=color;
this.price=price;
}
public void show()
{
System.out.println("品牌:"+Car.brand+" 颜色:"+this.color+" 价格:"+this.price);
}
public void show1()
{
System.out.println(颜色:"+this.color+" 价格:"+this.price);
}
public static void speed()
{
//this.name这是错的,静态的方法中不能调用非静态的东西,而非静态的方法里能调用静态的东西。
System.out.println(brand+"在加速,准备飞起来....");
}
public static void main(String[] args)
{
/*
Car qq = new Car("大众","白色",8000);//main方法也是静态方法,不能调用非静态的成员,但是这里不是调用非静态的成员,是创建了一个非静态的成员。
//比如在静态变量里放的brand属性,是在共享区创建了brand属性。归根结底,我是在共享区中的一个方法(main)中创建,共享区的这个方法中使用,我没出这个方法(main)以外的地方
qq.show();
qq.speed();
Car pst = new Car("黑色",40000);
pst.show();
pst.show1();
pst.speed();
**/
//这两个是类调用,把上面代码注销是为了验证类调用不用new对象,直接使用类名就行。类调用,调用的肯定是静态成员
Car.speed();//类调用静态方法
System.out.println(brand);//等价于System.out.println(Car.brand);类调用静态属性
}
}
-------------------------------------------
总结:
1.用static修饰的属性和方法,都会放在数据共享区,是在程序编译的时候进入数据共享区的。静态变量用类名.变量调用
2.当程序中属性用private修饰的时候,外界的类不能this.属性了,因为属性被那个类私有化了,但是那个类设置了公共的get、set
方法,因此外界类可以this.get方法
3.共享跟封装是对立的,因为封装是只能自己用。封装是把自己的属性和方法放在自己的对象里,用到this关键字(只是平时我们不写this关键字);
this关键字是指对一个数据的,因此this关键字不能放在共享区
4.public Car(String brand,String color,double price)的含义:
1.后面的参数实际上就是在调用带有三个参数的构造方法。
2. 写String brand是在数据共享区开辟了空间(因为他有static),写String color和double price是在堆内存中开辟了空间
3.其实写String color和double price就是在写this.color=color(set方法),这里用到了this关键字;而写static String brand其实是在写Car.brand(类.属性),这里是因为brand用到了static关键字。因为这两个关键字的用法不同,因此写String brand时候在数据共享区开辟了空间,写String color,double price的时候在堆内存开辟了空间。
5.public static void main(String[] args)
{
//1.这句话打印出:大众,白色,8000
Car qq1 = new Car("大众","白色",8000);
//2. 打印出大众,白色,40000,因为brand被共享了,第一次在上面用到了,所以第一次之后brand里面的值为大众,第二次不用在写
Car qq2 = new Car("白色",40000);
//3.这时候打印宝马,红色,66666,因为此时数据共享区的值(大众)被后面的新值覆盖了。
Car qq3= new Car("宝马","红色",66666);
//4.打印宝马,白色,666666。因为这里的brand用的是数据共享区后来的新值
Car qq4 = new Car("白色",40000);
}
6.生产doc文档:cmd-->javadoc 类名.java
public class Car
{
//属性,
static String brand="红旗";
String color;
double price;
public Car(String brand,String color,double price)
{
this(color,price);
this.brand=brand;
}
public Car(String color,double price)
{
this.color=color;
this.price=price;
}
public void show()
{
System.out.println("品牌:"+Car.brand+" 颜色:"+this.color+" 价格:"+this.price);
}
public void show1()
{
System.out.println(颜色:"+this.color+" 价格:"+this.price);
}
public static void speed()
{
//this.name这是错的,静态的方法中不能调用非静态的东西,而非静态的方法里能调用静态的东西。
System.out.println(brand+"在加速,准备飞起来....");
}
public static void main(String[] args)
{
/*
Car qq = new Car("大众","白色",8000);//main方法也是静态方法,不能调用非静态的成员,但是这里不是调用非静态的成员,是创建了一个非静态的成员。
//比如在静态变量里放的brand属性,是在共享区创建了brand属性。归根结底,我是在共享区中的一个方法(main)中创建,共享区的这个方法中使用,我没出这个方法(main)以外的地方
qq.show();
qq.speed();
Car pst = new Car("黑色",40000);
pst.show();
pst.show1();
pst.speed();
**/
//这两个是类调用,把上面代码注销是为了验证类调用不用new对象,直接使用类名就行。类调用,调用的肯定是静态成员
Car.speed();//类调用静态方法
System.out.println(brand);//等价于System.out.println(Car.brand);类调用静态属性
}
}
-------------------------------------------
总结:
1.用static修饰的属性和方法,都会放在数据共享区,是在程序编译的时候进入数据共享区的。静态变量用类名.变量调用
2.当程序中属性用private修饰的时候,外界的类不能this.属性了,因为属性被那个类私有化了,但是那个类设置了公共的get、set
方法,因此外界类可以this.get方法
3.共享跟封装是对立的,因为封装是只能自己用。封装是把自己的属性和方法放在自己的对象里,用到this关键字(只是平时我们不写this关键字);
this关键字是指对一个数据的,因此this关键字不能放在共享区
4.public Car(String brand,String color,double price)的含义:
1.后面的参数实际上就是在调用带有三个参数的构造方法。
2. 写String brand是在数据共享区开辟了空间(因为他有static),写String color和double price是在堆内存中开辟了空间
3.其实写String color和double price就是在写this.color=color(set方法),这里用到了this关键字;而写static String brand其实是在写Car.brand(类.属性),这里是因为brand用到了static关键字。因为这两个关键字的用法不同,因此写String brand时候在数据共享区开辟了空间,写String color,double price的时候在堆内存开辟了空间。
5.public static void main(String[] args)
{
//1.这句话打印出:大众,白色,8000
Car qq1 = new Car("大众","白色",8000);
//2. 打印出大众,白色,40000,因为brand被共享了,第一次在上面用到了,所以第一次之后brand里面的值为大众,第二次不用在写
Car qq2 = new Car("白色",40000);
//3.这时候打印宝马,红色,66666,因为此时数据共享区的值(大众)被后面的新值覆盖了。
Car qq3= new Car("宝马","红色",66666);
//4.打印宝马,白色,666666。因为这里的brand用的是数据共享区后来的新值
Car qq4 = new Car("白色",40000);
}
6.生产doc文档:cmd-->javadoc 类名.java
- this和static关键字.zip (13.3 KB)
- 下载次数: 2
发表评论
-
二分法、冒泡排序
2017-03-03 10:31 323import java.util.Scanner;/** ... -
for、while循环,打印三角形、菱形
2017-03-03 09:54 518import java.util.Scanner;publi ... -
单线程与多线程
2016-01-16 12:10 587单线程:按照程序 ... -
字节流,字符流,对象流,序列化,持久化
2016-01-15 11:25 641第一:读写字符串 input(读文件里的内容) 的步骤: ... -
深入反射、IO文件、字节流
2016-01-15 11:11 438第一:反射相关的概念 1.反射中调用构造函数默认都是调用 ... -
百度字符串
2016-01-07 17:41 5251、length() 字符串的长度 例:char char ... -
map集合转化成list集合
2015-12-28 15:52 1618package emp; public class Emp ... -
反射
2015-12-28 15:47 388第一:反射的概念 1.(1).java程序源文件(属性和 ... -
泛型
2015-12-28 15:24 377第一:泛型:问题:1.在运算时候必须要向下转型。向下转型存 ... -
map集合和他的实现类hasHmap(不安全)和hashTable(安全)
2015-12-28 15:15 578第一:初步认识map 1.键值对(key与value是一一 ... -
set接口和它的实现类treeset和hashset
2015-12-01 22:50 512第一:set接口:set接口里面的元素不能重复,因此nul ... -
Collection集合根接口、两个子接口list和set
2015-11-30 22:29 588第一:由数组的 ... -
String与StringBuffer、Date日期与SimpleDateFormat 简单的日期格式化
2015-11-29 22:31 614第一:String类:字符串常量1.String是一个类, ... -
异常与异常类
2015-11-25 22:58 369第一.异常的概念:异常就是程序在运行中的错误,程序中的异常用异 ... -
快捷键
2015-11-24 23:06 2601.导包:ctrl+shift+O 2.找类:ctrl+shi ... -
向下转型与instanceof 关键字,object类(系统类)中的常用方法
2015-11-24 23:02 913第一:向下转型 1.向下 ... -
接口,抽象类与接口的关系。多肽、向上转型与动态绑定的引出
2015-11-23 22:04 426第一:在引入接口之前 ... -
关键字:extends继承、abstract 抽象,继承与抽象类之间的关系、final最终的
2015-11-22 17:02 829----继承 1.extends的是继承或者扩展的意思。父类写 ... -
由static引出单例模式
2015-11-22 16:20 287单例模式的特点:保证在整个应用程序中只存在一个对象 单例模式的 ... -
java内存分析
2015-11-22 15:16 2341.局部变量中的引用类型是把地址存到栈内存中,由栈内存中的地址 ...
相关推荐
使用Eclipse生成javadoc文档的方法
本共享文档中包含org.json.jar包,及其源码 和javadoc文档
适合初学者学习的文档、、最新、、This document is the API specification for the Java™ Platform, Standard Edition.
使用Javadoc生成Java API文档的方法
4、本文插件已含全部帮助文档及package-list和index.html文件,不需要作任可加工,解压直接可以使用,到处下载,转码反编译,拆腾了一天,终于搞好了,希望只用你一分钟,本来想免积分分享,但是系统不允许,如果你...
jd2chm 工具 快速生成javadoc 所需要的chm 文档工具 对于开发人员来说 挺有用的 特此share 一下哈
javadoc2markdown 将 javadoc 代码文档转换为 Markdown wiki 页面这个小型命令行应用程序将源文件或头文件中的 javadoc 条目转换为 wiki markdown。 它将源/头文件作为唯一的命令行参数。 结果降价是从标准输出发出...
MyBatis3.2.8中文开发文档,javadoc,API,解压开,直接打开index.html
资源中包含docx4j项目的jar包(及主要依赖Jar)、javadoc、源码和示例等,因为花费挺大力气整理出来,所以定了2分,如果您有需要而缺少CSDN下载,请留言或发短消息索取.... 另外,请关注我的博客,其中有些对docx4j...
问:“为什么你的 javadoc 生成的文档是中文的,而我生成的文档是英文的呢?” 答:应该在使用 javadoc 编译文档的时候将 -locale zh_CN 作为第一个参数 问:为什么我加了 -locale zh_CN 还是不行 答:我写...
Eclipse生成javadoc文档,让你更清楚的了解项目结构
中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 ...
非常经典的javadoc注释文档,让你的代码一目了然
spring-core-4.2.5.RELEASE-javadoc.jar (spring4.2.5的文档,即为spring的源码注释),导入到eclipse中,就可以查看spring的源码注释,当调用spring的类或者方法时就会显示注释信息。
当前的IDE会警告您缺少JavaDoc标记和文档,可以让您单独解决问题,但情况不大。 类似于代码覆盖率工具,此插件提供了一种获取项目文档覆盖率概述的方式。 它提供了一个 ,可与JavaDoc Tool一起使用,以显示项目的...
findbug的错误日志文档 如: Bug: Call to method of static java.text.DateFormat Pattern id: STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE, type: STCAL, category: MT_CORRECTNESS As the JavaDoc states, ...
JMS1.1 API JAVADOC 中文版+英文版,chm文件 真正的API中文版,而不是JMS规范
中文JAVADOC中文JAVADOC
GroovyHelp是一款Javadoc搜索查阅软件,它能够帮助Java开发人员方便快速地查找Javadoc文档并对其进行高效管理,从此无需苦寻chm格式的帮助文档了。 主要特性: * 根据输入关键字,查找类,接口,方法等帮助信息...