3.26学习总结

java

实例变量和局部变量

实例变量是记录这个类中对象的特点的每一个对象的实例变量都可以不同(例如名字,性别等),其中一个对象的实例变量改变不会影响其他的变量.

类变量是一种特殊的实例变量,他的特殊在于所有的对象的类变量都是相同的,当一个对象改变了类变量那么所有对象的类变量都会改变(可以视为所有的对象共用同一个类变量),

局部变量与c语言中的局部变量基本相同,只生存在固定的函数内(一般定义在方法中).

实例变量(成员变量),静态变量(类变量).

定义方式

 public class girl {
    private int age;                            //实例变量
    public static int gender;                //类变量
    public girl() {

    }

    public girl(int age) {
        int t;                                  //局部变量
        if (age >= 18 && age <= 50)
            this.age = age;
        else
            System.out.println("错误");
    }
}

 this

在上述代码中出现了this这个关键字,这个关键字使用来区分局部变量和实例变量的,this中储存的是调用这个方法的对象的地址,它可以通过对象地址来准确的调用到对象的实例变量.

构造器

构造器是在调用这个类来创建对象同时给他赋初值的时候使用的,如果在一个类中没有编写构造器,那么默认是只有一个空参数的构造器.

在编写构造器时要注意,一旦自己编写了构造器系统便不会给予空参数的构造器,所以当编写时要手动编写.

代码

 public class girl {
    private int age;
    public static int gender;
    public girl() {               //空参的构造器

    }

    public girl(int age) {               带参的构造器
        int t;
        if (age >= 18 && age <= 50)
            this.age = age;
        else
            System.out.println("错误");
    }
}

private和public

当一个变量定义前有private这个前缀代表这个变量无法在其他类中被改变只能在所定义的类中进行改变,好处是可以保护数据不被滥用.public则可以在任何类被改变.

如果想改变前缀有private的变量可以这样

 public class girl {
    private int age;
    public static int gender;
    public girl() {

    }

    public girl(int age) {
        int t;
        if (age >= 18 && age <= 50)
            this.age = age;
        else
            System.out.println("错误");
    }
    public void setage(int x) {                 //改变方式
        if (x >= 18 && x <= 50)
            age = x;
        else
            System.out.println("错误");
    }
}

String类

String定义的变量有两种赋值方式一种是通过直接赋值的方式,另一种则是通过new来进行赋值.

这两种赋值方式不同的点在于赋值的字符串存储地方不同.

当直接赋值时,字符串会存储在堆区一个特殊的地方,String存储的是这个字符串的地址,当变量被赋值字符串时,系统会扫描这个区域,如果发现一样的字符串则将这个字符串的地址赋给它.也就是说两个变量所储存的地址是同一个.

new赋值的变量则不同,new会在堆区新建一个空间来储存字符串.

当他们被用来比较时就可以看出来(因为比较的是地址).

public class Main {
    public static void main(String[] args) {
        String a="jjm";                         //直接赋值
        String b=new String("jjm");             //通过new赋值
        String c="jjm";
        System.out.println(a==b);
        System.out.println(a==c);
    }
}

这个程序运行的结果是

相关推荐

  1. 学习总结

    2024-03-27 13:46:02       16 阅读
  2. 学习总结

    2024-03-27 13:46:02       14 阅读
  3. 学习总结

    2024-03-27 13:46:02       15 阅读
  4. 学习总结

    2024-03-27 13:46:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 13:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 13:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 13:46:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 13:46:02       20 阅读

热门阅读

  1. Spring和Spring Boot的区别

    2024-03-27 13:46:02       17 阅读
  2. Mysql数据库:索引

    2024-03-27 13:46:02       17 阅读
  3. C++服务内存分析

    2024-03-27 13:46:02       19 阅读
  4. STEVE - Voracious Steve dfs , 以及为什么不能博弈

    2024-03-27 13:46:02       20 阅读
  5. nginx负载均衡模式

    2024-03-27 13:46:02       18 阅读
  6. 能否把 Redis 当做消息队列来用呢?

    2024-03-27 13:46:02       17 阅读
  7. Python的异常处理

    2024-03-27 13:46:02       16 阅读
  8. Jenkins Docker 部署指南

    2024-03-27 13:46:02       18 阅读
  9. SpringBoot集成FreeMarker时访问不到.ftl文件

    2024-03-27 13:46:02       15 阅读
  10. 掌握Mac常用命令,提升工作效率

    2024-03-27 13:46:02       17 阅读
  11. Spring设计模式-实战篇之模板方法模式

    2024-03-27 13:46:02       19 阅读