首页 > 其他分享 >静态static

静态static

时间:2023-04-21 17:13:03浏览次数:21  
标签:name 静态 System static println public out

静态static

static概述

如果使用了static关键字,这样的内容就不是属于对象自己的,而是属于类的,只要是本类的对象都共享同一份数据.

这份数据保存在类中

image-20230420111108741

static关键字用于成员变量

如果一个成员变量使用了static关键字,那么这个对象就不属于自己而是属于类的

image-20230421161744794

static可以用来计数

代码示例

Student类

public class Student {
    private String name;
    private int age;
    static String room;
    //可以用来自动生成学号
    private static int count;//计数器,可以使用这个静态变量来计算生成对象的个数
    private int id;//学号

    public Student() {
        count++;
        id = count;
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        count++;
        id = count;

    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

主函数

public class Demo09 {
    public static void main(String[] args) {
        Student two = new Student("易烊千玺", 23);
        two.room = "407实验室";//room为所有对象共享的
        System.out.println("姓名:" + two.getName() + ",年龄:" + two.getAge() + ",教室:" + two.room + ",学号:" + two.getId());
        Student one = new Student("蔡徐坤", 19);
        System.out.println("姓名:" + one.getName() + ",年龄:" + one.getAge() + ",教室:" + one.room + ",学号:" + one.getId());


    }
}



static关键字用于成员方法

静态方法概述

image-20230421164423560

原本的成员方法需要先创建对象才能使用,对于静态方法直接通过类名称使用方法

推荐使用--类名称.静态方法

不推荐--对象名称.静态方法

image-20230421164717350

image-20230421164940269

代码示例

public class Myclass {
    public static void methodStatic()
    {
        System.out.println("我是静态方法");
    }
    public void method()
    {
        System.out.println("我是成员方法");

    }
}

主函数

public class Demo10 {
    public static void main(String[] args) {
        Myclass one=new Myclass();
        one.method();
        one.methodStatic();//不推荐写法
        Myclass.methodStatic();//推荐写法
        hello();
    }
    public static void hello()
    {
        System.out.println("你好");
    }
}

注意事项

静态不能访问非静态

因为在内存中先有静态内容,然后有非静态内容

静态方法里面不能用this

image-20230421165027940

代码截图

image-20230421165044125

代码示例

public class Myclass {
    private String name;
    private static int age;

    public static void methodStatic() {
        System.out.println("我是静态方法");
//        System.out.println(name);
        //静态方法不能访问非静态变量
        System.out.println(age);
        //静态方法可以访问静态变量
//        System.out.println(this);
//        静态方法不能使用this
    }

    public void method() {
        System.out.println(name);
        //成员方法可以访问非静态变量
        System.out.println(age);
        //成员可以访问静态变量
        System.out.println("我是成员方法");
        System.out.println(this);//成员方法可以使用this

    }
}

标签:name,静态,System,static,println,public,out
From: https://www.cnblogs.com/harper886/p/17341078.html

相关文章

  • SpringBoot配置简单拦截器 已解决静态资源访问问题
    publicclassLoginInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{System.out.println(request.getRequestURI());......
  • tomcat提示静态文件缓存超限,造成日志爆满的问题
    日志片段:21-Apr-202311:20:47.215警告[http-nio-80-exec-5308]org.apache.catalina.webresources.Cache.getResourceUnabletoaddtheresourceat[/FileUploads/www/site/2022/11/30/ZZVRQAHD08ZX4GOW47.jpg]tothecacheforwebapplication[]becausetherewasin......
  • Django框架——手写web框架、wsgiref模块、动静态网页、jinja2模块、主流web框架、Dja
    web应用'''通过浏览器访问的应用程序!!!'''1.两种模式c/sb/s B/S:browser---------------->server2.web应用程序的有点 2.1只需要一个浏览器即可2.2 节省资源2.3 他们不需要更新,因为所有新的特性都在服务器上执行3.web应用程序的缺点 #特别依赖服务端程序的健壮......
  • CS0120 对象引用对于非静态的字段、方法或属性
    非静态类的方法是不能直接调用的,需要实例化,但当有时需在各个地方去调用该方法时,逐个去实例化会显得麻烦,可以采用一个静态类来封装后使用。只有静态类才能调用......
  • springboot 静态文件夹
    正常这个很久了,不需要写,但是好几年没有写这个相关的,都忘了,好记性不如烂笔头 spring:resources:static-locations:file:D:\\test#对应服务器内映射的实际路径mvc:static-path-pattern:/test/**#对应服务访问时的前缀servlet:multipa......
  • Docker 部署前端静态网站
    1安装Docker(略)2拉取nginx镜像dockerpullnginx3创建文件目录bev:静态网站名称html:存放网站代码nginx:存放nginx配置文件nginx.confconf.d:存放配置文件default.conflogs:挂载nginx的日志4运行镜像,复制文件到宿主机dockerrun-d-p80:80nginx查看容器iddocke......
  • java-普通内部类和静态内部类区别
    静态内部类相对与外部类是独立存在的,在静态内部类中无法直接访问外部类中的变量、方法。如果要访问的话,必须要new一个外部类的对象,使用new出来的对象来访问。但是可以直接访问静态变量,调用静态的方法。普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性......
  • c++ 静态编译和动态编译
      C++是一种高级编程语言,它支持两种不同的编译方式:静态编译和动态编译。下面是它们的介绍:静态编译  静态编译是将程序代码和库函数一起编译成一个可执行文件的过程。在静态编译过程中,程序代码和库函数的代码被组合在一起,形成一个独立的可执行文件,该文件可以在任何系统上运行......
  • SpringBoot静态文件映射问题
    如果遇到这种情况,检查静态文件(js/css/img)是不是在默认的static路径下,在查看application配置中的static-path-pattern:是否和前端映射路径完全相同,要是不相同则会造成访问不到......
  • Vmware 安装 Linux系统 设置 静态IP 桥接模式 无法连接网络?可能是没设置好
    可能是你没有设置好连接step.1step.2这里需要选择你电脑硬件的网卡,选其他的没用。......