首页 > 编程语言 >Java拾贝第五天——静态和代码块

Java拾贝第五天——静态和代码块

时间:2023-10-18 17:56:14浏览次数:35  
标签:Java 拾贝 代码 Work name static 第五天 public String

Java拾贝不建议作为0基础学习,都是本人想到什么写什么

在Java中主要存在4块内存区域。
栈内存空间:保存所有变量(更准确的说是保存了指向堆内存空间的地址)
堆内存空间:保存每个对象的具体属性内容
全局数据区:保存static类型的属性
全局代码区:保存所有方法定义

static关键字

一个类实例化时会开辟栈内存、堆内存。

栈内存中存放其变量,堆内存中存放对象的属性。每个对象都有自己的属性。

静态属性

如果现在有某属性希望被所有对象共享,那么可以称其为静态(static)属性。也叫全局属性

为举栗子不封装。

public class test5 {
    public static void main(String args[]) {
        Work work1 = new Work("A",22,"SY");
        Work work2 = new Work("B",26,"SY");
        work1.Info();
        work2.Info();
    }
}

class Work {
    String name;
    int age;
    String cityName;

    public Work(String name, int age, String cityName) {
        this.name = name;
        this.age = age;
        this.cityName = cityName;
    }
    public void Info(){
        System.out.println(this.name+this.age+this.cityName);
    }
}

现有两名SY城的工作者想一起跳槽去TT城,该如何执行代码

    public static void main(String args[]) {
        Work work1 = new Work("A",22,"SY");
        Work work2 = new Work("B",26,"SY");
        work1.Info();
        work2.Info();
        work1.setCityName("TT");
        work2.setCityName("TT");
        System.out.println("跳槽后");
        work1.Info();
        work2.Info();
    }
/*
A22SY
B26SY
跳槽后
A22TT
B26TT
*/

可以看到确实成功抵达TT城,但如果不止AB两个实例呢?

这时可以使用static,使其被所有对象共享,达成一改全改。

public class test5 {
    public static void main(String args[]) {
        Work work1 = new Work("A", 22);
        Work work2 = new Work("B", 26);
        work1.Info();
        work2.Info();
        Work.cityName="TT";
        System.out.println("跳槽后");
        work1.Info();
        work2.Info();
    }
}

class Work {
    String name;
    int age;
    static String cityName="SY";

    public Work(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void Info() {
        System.out.println(this.name + this.age + this.cityName);
    }
}
/*
A22SY
B26SY
跳槽后
A22TT
B26TT
*/

因为cityName被static修饰后被所拥有,不再局限于某个实例。

可以由类直接调用

//类名.静态属性
Work.cityName="TT";

静态方法

相应的,有静态属性就有静态方法。也叫类方法

静态方法和静态属性相同可以由类直接调用。

类名.方法();

继续使用上述的栗子,但把属性进行封装。

public class test5 {
    public static void main(String args[]) {
        Work work1 = new Work("A", 22);
        Work work2 = new Work("B", 26);
        Work.cityName = "TT";//报错,封装后不能直接访问属性
        System.out.println("跳槽后");
        work1.Info();
        work2.Info();
    }
}

class Work {
    private String name;
    private int age;
    private static String cityName="SY";

    public Work(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void Info() {
        System.out.println(this.name + this.age + this.cityName);
    }


    public static String getCityName() {
        return cityName;
    }

    public static void setCityName(String cityName) {
        Work.cityName = cityName;
    }
	//其他getter和setter
}

修改代码:

Work.cityName = "TT";

标签:Java,拾贝,代码,Work,name,static,第五天,public,String
From: https://www.cnblogs.com/Ocraft/p/17772985.html

相关文章

  • java web(2)
    1.异常全局处理2.事务3.aop技术4.mtbits5.三大存储技术1.异常全局处理点击查看代码importcom.example.program.pojo.Result;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg.springframework.web.bind.annotation.RestControllerAdvice;......
  • Error:java: Compilation failed: internal java compiler error
    Error:java:Compilationfailed:internaljavacompilererror出现这个错误的原因主要是因为JDK版本问题,有两个原因,一个是编译器版本不匹配,一个是当前项目JDK版本不支持。File-->ProjectStructure-->ProjectSettings-->Project或者Ctrl+Alt+shift+S打开项目的......
  • Java 新手如何使用Spring MVC 中的双向数据绑定?
    数据绑定,正如其名称本身一样,是一个不言自明的词。在数据绑定中,我们要做的是捕获或存储数据,以便我们可以根据需要将该数据与另一个资源绑定(例如在前端部分显示数据),或者我们也可以从一个变量并根据我们的要求显示它。例如,有一个谷歌表单,用户在该表单中输入所有详细信息,我们必须捕获/......
  • Java 新手如何使用Spring MVC 中的查询字符串和查询参数?
    Java新手如何使用SpringMVC中的查询字符串和查询参数?根据维基百科的说法,“查询字符串是统一资源定位符(URL)的一部分,它为指定的参数分配值。查询字符串通常包括由Web浏览器或其他客户端应用程序添加到基本URL的字段,例如作为HTML的一部分、选择页面的外观或跳转到多媒体内容......
  • JAVA IO 详细介绍
                  ......
  • 【JAVA】cron定时怎么记 ss mi hh DD MM 星期 YY
      ......
  • JavaScript高级程序设计(第3版)pdf电子版Nicholas C. Zakas
    JavaScript高级程序设计(第3版)pdf电子版作者:[美]NicholasC.Zakas原作名:ProfessionalJavaScriptforWeb出版年:2012-3-29ISBN:9787115275790链接提取码:jz6rJavaScript最基础的书籍。......
  • Java 设计模式之七大原则
    Java设计模式之七大原则|Drunkbaby'sBlog(drun1baby.top)1、认识设计模式1.1什么是设计模式所谓设计模式,就是对经常出现的软件设计问题的成熟解决方案。很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。笔者见过一些学员喜欢抱着一......
  • 【JAVA】org.apache.http依赖
     <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version></dependency><dependency>&l......
  • 【JAVA】org.apache.commons.codec依赖
     <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency>......