static申明属性

如果有属性希望被所有对象共享,则必须将其申明为static属性。

使用static声明属性,则此属性称为全局属性,有时候也称为静态属性。

当一个类的属性申明为static的时候,由这个类产生的多个对象中属性,只需要对其中一个对象的该属性进行修改,即可以修改所有对象的这个属性

若只申明为public,没有static的时候,则修改申明的对象的属性只修改一个,申明为private的时候报错,因为该属性私有化,不能被方法所调用。

在调用static申明的属性的时候,最好通过类名称来直接调用,因为通过对象来调用不知道该类产生了多少的对象,这样子不太好,所以又把static声明的属性称为类属性,调用的格式位Person_1.coountry="B city";

class Person_1{
private String name;
private int age;
static String country = "A city"; public Person_1(String n,int a){
this.name = n;
this.age = a;
} public void info(){
System.out.println("name:"+this.name+"\t"+"age:"+this.age+"\t"+"city:"+this.country);
}
}; public class static_test { public static void main(String[] args) {
// TODO 自动生成的方法存根
Person_1 p1 = new Person_1("zhangsan",30);
Person_1 p2 = new Person_1("wangwu",40);
p1.info();
p2.info();
p1.country = "B city";
p1.info();
p2.info();
} }

输出

name:zhangsan	age:30	city:A city
name:wangwu age:40 city:A city
name:zhangsan age:30 city:B city
name:wangwu age:40 city:B city

Java中的常用的内存区域

  <1>栈内存空间:保存所有的对象名称(更准确的说是保存了引用的堆内存空间的地址)

  <2>堆内存空间:保存每个对象的具体属性内容

  <3>全局数据区:保存static类型的属性

  <4>全局代码区:保存所有的方法定义

Java其他关键字

public:表示此方法可以被外部调用

static:表示此方法可以由类名称直接调用

void:主方法是程序的起点,所以不需要任何的返回值

main:系统规定好默认调用的方法名称,执行时默认找到main方法名称

String arg[]:表示的是运行 时的参数。参数传递的形式为“Java类名称 参数1 参数2...”

static申明方法  

使用static申明的方法又称为类方法,Person_1.setCountry("B city"); 同时修改多个对象的属性

非static声明的方法可以去调用static声明的属性或方法

但是static声明的方法是不能调用非static类型声明的属性或者方法的

class Person_1{
private String name;
private int age;
public static String country = "A city"; public static void setCountry(String c){
country = c;
} public static String getCountry(){
return country;
} public Person_1(String n,int a){
this.name = n;
this.age = a;
} public void info(){
System.out.println("name:"+this.name+"\t"+"age:"+this.age+"\t"+"city:"+this.country);
}
}; public class static_test { public static void main(String[] args) {
// TODO 自动生成的方法存根
Person_1 p1 = new Person_1("zhangsan",30);
Person_1 p2 = new Person_1("wangwu",40);
p1.info();
p2.info();
//p1.country = "B city";
Person_1.setCountry("B city");
p1.info();
p2.info();
} }

可以通过static还统计实例化了多少个对象

class demo{
private static int count = 0;
public demo(){
count++;
System.out.println("No."+count);
}
} public class static_count { public static void main(String[] args) {
// TODO 自动生成的方法存根
new demo();
new demo();
new demo();
} }

给主方法的args传递参数,然后统计传递的参数的个数

public class HelloWprdApp {

	public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 0,sum = 0;
char num1 = 97; if(args.length != 3){
System.out.println("<3");
System.exit(1);
} for(int i=0;i<args.length;i++){
System.out.println("name:"+args[i]);
}
}
}

Java关键字——static的更多相关文章

  1. java关键字static使用总结

    java关键字static使用总结 1.static修饰的方法被称之为静态方法也叫做类方法,加static的方法,可以通过类名直接访问,不加static的方法只能通过对象名访问. 静态方法可以直接通过 ...

  2. java笔记——Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  3. Java关键字--static

    在Java中,将关键字static分为三部分进行讨论,分别为Java静态变量.Java静态方法.Java静态类 Java Static Variables Java instance variable ...

  4. Java关键字static、final

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  5. Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  6. [JAVA关键字] static & final

    JAVA十分常见的关键字static & final 总的来说final表示常量,即不可更改的:而static表示静态,即全局的 1. final 类:不能被继承 2. final 方法:能被 ...

  7. Java 关键字 static

    关键字static作用如下: 1. 为某个基本数据类型或对象分配单一的存储空间. 2. 实现某个属性或方法与类关联.在类被加载后类名可以直接调用静态成员方法(下面简称静态方法)或者访问静态成员变量(下 ...

  8. java 关键字static

    在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. Java把内存分为栈内存和堆内存, 栈内存用来存放一些基本类型的变量.数组和对象的引用, 堆 ...

  9. java关键字“static”

    Java中static使用方法 1.static静态变量 静态变量:每个类只有一个,所有实例共享: 实例变量:每个实例只有一个: package test2; import java.lang.Str ...

随机推荐

  1. [团队项目]Github生成燃尽图的方式

    经过一晚上折腾,终于算是把linux上成功生成了我们团队项目的燃尽图,效果还是不错,在过程中又发现了另一种生成燃尽图的方式,也是基于一个开源项目. 1.准备: 首先你的项目一定要有milestone. ...

  2. Android判断Touch为滑动事件还是操作控件

    Android判断Touch为滑动事件还是操作控件 因为在项目中要判断WebView是否处于滚动状态,但它不像ListView有onScrollStateChanged方法来监听,要实现就得手动监听它 ...

  3. 【BZOJ 3879】SvT

    http://www.lydsy.com/JudgeOnline/problem.php?id=3879 SvT的中文是后缀虚树? 反正本蒟蒻不懂,还是$O(nlogn)$的后缀数组和单调栈维护来做, ...

  4. 逻辑回归&&code

    没有正则化项的时候的二分类 #-*-coding=utf-8-*- from numpy import loadtxt,where, transpose import matplotlib.pyplo ...

  5. 安装findbugs

    Welcome to the FindBugs Eclipse plugin update site. This web page provides automatic distribution an ...

  6. Android大神博客

    Trinea  收藏级,开源项目分析等 Android开发周刊Android各种知识 郭霖 http://blog.csdn.net/guolin_blog?viewmode=contents 鸿洋  ...

  7. 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定

    介绍背水一战 Windows 10 之 绑定 TemplateBinding 绑定 与 RelativeSource 绑定 与 StaticResource 绑定 示例1.演示 TemplateBin ...

  8. 安装python-docx

    安装环境: windows 7 64位 python 3.4.2 64位 说明: 用pip install python-docx不行,当装lxml时出现错误,一直卡在那. 安装非官方的版本,如下图, ...

  9. SQL server 那些数据类型不能作为索引

    下数据类型不能包括在列存储索引中: ·binary和varbinary ·ntext.text和 image ·varchar(max)和nvarchar(max) ·uniqueidentifier ...

  10. 运行python代码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

    1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因 ...