原创,转载请注明来源sogeisetsu的博客园

static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的

先放上代码,您可以先越过代码,看后面的讲解内容

  1. class Boook {//随意定义一个类
  2. private int value;
  3. private String name;
  4. static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
  5. public Boook(int value, String name) {
  6. this.name = name;
  7. this.value = value;
  8. }
  9. public String getInfo(){
  10. return "|-"+"价格:"+this.value+"\t书名:"+this.name+"\t出版社:"+this.pub;
  11. }
  12. }
  13. public class StaticStudy {
  14. public static void main(String[] args) {
  15. System.out.println("static学习");
  16. //调用Boook
  17. Boook a1 = new Boook(12, "数学");
  18. Boook a2 = new Boook(19, "国语");
  19. Boook a3 = new Boook(14, "英文");
  20. System.out.println(a1.getInfo());
  21. System.out.println(a2.getInfo());
  22. System.out.println(a3.getInfo());
  23. /*
  24. * |-价格:12 书名:数学 出版社:科大出版社
  25. |-价格:19 书名:国语 出版社:科大出版社
  26. |-价格:14 书名:英文 出版社:科大出版社*/
  27. //改变一个的公共属性,全都改变。
  28. a1.pub="青岛出版社";
  29. System.out.println(a1.getInfo());
  30. System.out.println(a2.getInfo());
  31. System.out.println(a3.getInfo());
  32. /*
  33. * |-价格:12 书名:数学 出版社:青岛出版社
  34. |-价格:19 书名:国语 出版社:青岛出版社
  35. |-价格:14 书名:英文 出版社:青岛出版社
  36. * */
  37. //建议用Boook.pub来修改
  38. Boook.pub="济南出版社";
  39. System.out.println(a1.getInfo());
  40. System.out.println(a2.getInfo());
  41. System.out.println(a3.getInfo());
  42. /*
  43. * |-价格:12 书名:数学 出版社:济南出版社
  44. |-价格:19 书名:国语 出版社:济南出版社
  45. |-价格:14 书名:英文 出版社:济南出版社
  46. * */
  47. }
  48. }

先随意定义一个类,名称为Boook,功能为写书的价格,书名和出版社。

  1. class Boook {//随意定义一个类
  2. private int value;
  3. private String name;
  4. static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
  5. public Boook(int value, String name) {
  6. this.name = name;
  7. this.value = value;
  8. }
  9. public String getInfo(){
  10. return "|-"+"价格:"+this.value+"\t书名:"+this.name+"\t出版社:"+this.pub;
  11. }
  12. }

书名和价格都是普通的属性,出版社是static属性,因为这些书都是一个出版社的,用static属性只占一个内存,可以节省内存。并且也易于修改。

附上ststic内存图



先调用一个

  1. Boook a1 = new Boook(12, "数学");
  2. Boook a2 = new Boook(19, "国语");
  3. Boook a3 = new Boook(14, "英文");
  4. System.out.println(a1.getInfo());
  5. System.out.println(a2.getInfo());
  6. System.out.println(a3.getInfo());
  7. /*
  8. * |-价格:12 书名:数学 出版社:科大出版社
  9. |-价格:19 书名:国语 出版社:科大出版社
  10. |-价格:14 书名:英文 出版社:科大出版社*/

返回

  1. |-价格:12 书名:数学 出版社:科大出版社
  2. |-价格:19 书名:国语 出版社:科大出版社
  3. |-价格:14 书名:英文 出版社:科大出版社

修改出版社a1.pub="青岛出版社";,改变一个的公共属性,全都改变。

返回

  1. |-价格:12 书名:数学 出版社:青岛出版社
  2. |-价格:19 书名:国语 出版社:青岛出版社
  3. |-价格:14 书名:英文 出版社:青岛出版社

可以看到,修改一个对象的公共属性,那所有对象相应的公共属性都会改变

公共属性建议用类名.公共属性来修改。比如这个Boook类用Boook.pub来修改。Boook.pub="济南出版社";修改成济南出版社,来看一下返回值

  1. |-价格:12 书名:数学 出版社:济南出版社
  2. |-价格:19 书名:国语 出版社:济南出版社
  3. |-价格:14 书名:英文 出版社:济南出版社

static方法

static方法,可以直接通过类名称来调用

static方法只能调用static调用的属性或方法

  1. class Boook {//随意定义一个类
  2. private int value;
  3. private String name;
  4. static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
  5. public Boook(){
  6. }
  7. public Boook(int value, String name) {
  8. this.name = name;
  9. this.value = value;
  10. }
  11. public String getInfo(){
  12. return "|-"+"价格:"+this.value+"\t书名:"+this.name+"\t出版社:"+this.pub;
  13. }
  14. //static方法,可以直接通过类名称来调用
  15. //static方法只能调用static调用的属性或方法
  16. public static void setPub(String p){
  17. Boook.pub=p;//不要用this
  18. }
  19. }

static方法,可以直接通过类名称来调用

  1. Boook.setPub("光明出版社");//static方法,可以直接通过类名称来调用
  2. System.out.println(a1.getInfo());
  3. System.out.println(a2.getInfo());
  4. System.out.println(a3.getInfo());
  5. /*
  6. * |-价格:12 书名:数学 出版社:光明出版社
  7. |-价格:19 书名:国语 出版社:光明出版社
  8. |-价格:14 书名:英文 出版社:光明出版社
  9. * */

java static学习的更多相关文章

  1. Java的学习之路

    记事本 EditPlus eclipse Java的学习软件,已经系统性学习Java有一段时间了,接下来我想讲一下我在Java学习用到的软件. 1.第一个软件:记事本 记事本是Java学习中最基础的编 ...

  2. Java多线程学习笔记

    进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...

  3. Java多线程学习(转载)

    Java多线程学习(转载) 时间:2015-03-14 13:53:14      阅读:137413      评论:4      收藏:3      [点我收藏+] 转载 :http://blog ...

  4. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

  5. Java Web学习系列——Maven Web项目中集成使用Spring

    参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...

  6. 我是怎么开发一个小型java在线学习网站的

    2016/1/27 11:55:14 我是怎么开发一个小型java在线学习网站的 一直想做一个自己的网站(非博客),但是又不知道做什么内容的好,又一次看到了w3schools,就萌发了开发一个在线ja ...

  7. Java EE学习——Quartz的Cron表达式

    经历过低谷后,还是要好好学习,越失落会越来越落后. 今天写一下Cron表达式的用法,虽然是之前自己写的,也过了挺长一段时间,这次就拿出来作为回顾吧. Cron表达式是Quartz的精髓(个人觉得),比 ...

  8. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. Android(java)学习笔记267:Android线程池形态

    1. 线程池简介  多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.     假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...

随机推荐

  1. [随笔]冲NOIP一等奖。。

    唉不想多说了. 真是一段“传奇”的经历啊. 还是那句话..“是的我上次什么都没说就走了...”这次也一样. 我还是太单纯的以为我们是肯定能够参加北大的夏令营的..然而结果真是意料之外啊. 本来我以为我 ...

  2. Visual Studio 调试系列8 查找导致程序崩溃的 DLL(使用模块窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 如果应用程序在调用系统 DLL 或他人的代码时崩溃,则需要找出在崩溃发生时处于活动状态的 DLL. 如果在自己的程序之外的 DLL 中遇到崩溃, ...

  3. 万亿数据下Hadoop的核心竞争力

    1.前言 在大数据时代,Hadoop有着得天独厚的优势.然而,每个企业的技术储备和需求特点不同,他们希望从海量的客户数据中挖掘真正的商业价值,像Google.Facebook.Twitter等这样的企 ...

  4. Gin框架 - 项目目录

    概述 今天给大家分享,在 API 端使用 Gin 框架时,项目的目录. 目录 ├─ Project Name │ ├─ config //配置文件 │ ├── ... │ ├─ controller ...

  5. SQL ----------- join (inner join 内连接)

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段,把两个表中的数据放在一个表中查询 注意: join 连接有多种方式,比如内连接,外连接,交叉连接 可以和where ...

  6. Deep Learning专栏--强化学习之MDP、Bellman方程(1)

    本文主要介绍强化学习的一些基本概念:包括MDP.Bellman方程等, 并且讲述了如何从 MDP 过渡到 Reinforcement Learning. 1. 强化学习基本概念 这里还是放上David ...

  7. 那些前端二进制操作API

    一直以来,前端的工作主要涉及的是字符串操作,而对二进制的数据接触较少.但是这种需求却一直存在着,尤其是HTML5之后,随着web应用越来越复杂,File,Blob,TypedArray这些API的出现 ...

  8. 在Mac 上搭建Linux虚拟机--MacOS & VMware10 & CentOS 7

    在大型项目开发中, 需要使用Linux下的C语言对工程进行开发, 在个人PC或者工作站上搭建Linux系统十分容易且方便. 本篇文章将介绍操作系统和虚拟机的搭建: 1 操作系统2 虚拟机概念3 Lin ...

  9. 【题解】邻值查找 [CH1301]

    [题解]邻值查找 [CH1301] 传送门:邻值查找 \([CH1301]\) \([AcWing136]\) [题目描述] 给定一个长度为 \(n\) 的序列 \(A\),\(A\) 中的数各不相同 ...

  10. 开源分布式追踪系统 — Jaeger介绍

    目录 一.Jaeger是什么 二.Jaeger架构 1. 术语 2. 架构图 三.关于采样率 四.部署与实践 一.Jaeger是什么 Uber开发的一个受Dapper和Zipkin启发的分布式跟踪系统 ...