零基础学java---private和this关键字(2)

简介: 零基础学java---private和this关键字(2)

2.对象内存图


2.1 对象内存图(单个对象)


2.2对象内存图(多个对象)


3. 成员变量和局部变量


3.1 什么是成员变量和局部变量


成员变量: 类中方法外的变量


局部变量: 方法中的变量


3.2 成员变量和局部变量区别



4. 封装(private)


4.1 private 关键字


* 是一个权限修饰符


* 可以修饰成员(成员变量和成员方法)


* 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问


针对private修饰的成员变量,如果被其它类使用,提供相应的操作


* 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰


*  提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰、


4.2 private关键字的使用


一个标椎类的编写:


*  把成员变量用private修饰


*  提供对应的getXxx()/setXxx()方法


代码示例:学生类


/*
    学生类
 */
public class Student {
    //成员变量
    private String name;
    private int age;
    //get/set方法
    public void setName(String n) {
        name=n;
    }
    public String getName() {
        return name;
    }
    public void setAge(int a){
        age=a;
    }
    public int getAge(){
        return age;
    }
    public void show(){
        System.out.println(name+","+age);
    }
}
/*
      学生测试类
 */
public class StudentDemo {
    public static void main(String[] args){
        //创建对象
        Student s= new Student();
        //使用set方法给成员变量赋值
        s.setName("hmm");
        s.setAge(19);
        s.show();
        //使用get方法获取成员变量的值
        System.out.println(s.getName()+"---"+s.getAge());
    }
}


4. 封装(this)


4.3 this关键字


1. this修饰的变量用于指代成员变量


   * 方法的形象如果与成员变量同名,不带this修饰的变量


      指的是形参,而不是成员变量


*  方法的形参没有与成员变量同名,不带this修饰的变量


       指的是成员变量


2.  什么时候使用this呢?  解决局部变量隐藏成员变量


3. this: 代表所在类的对象引用


*  记住:  方法被那个对象调用,this就代表那个对象


public class Student {
    //成员变量
    private String name;
          public String getName(){
             return name;
}
         public void setName(String name){
               this.name = name
             }
}


4.4 this内存原理







目录
相关文章
|
3月前
|
存储 安全 Java
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
28 1
|
3月前
|
Java 开发者
Java中的并发编程:深入理解synchronized关键字
在Java并发编程的领域中,synchronized关键字是实现线程同步的基础工具之一。本文将深入剖析synchronized的作用机制,探讨其在多线程环境下确保数据一致性的重要性,并通过实际案例展示其应用。同时,文章还将比较synchronized与Lock接口的不同之处,以助于开发者更好地选择适合自己场景的同步策略。
|
3月前
|
缓存 安全 算法
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
31 0
|
3月前
|
存储 SQL Java
Java实现关键字模糊查询的高效方法及实践
实现关键字模糊查询的方法有多种,每种方法都有其适用场景。在选择合适的方法时,应考虑实际需求、数据量大小、性能要求等因素。正则表达式适用于处理简单文本或小数据集;数据库模糊查询适用于存储在RDBMS中的数据;而第三方库,则适合需要进行复杂搜索的大型项目。选用合适的工具,可以有效提升搜索功能的性能和用户体验。
63 6
|
3月前
|
算法 Java API
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
|
3月前
|
缓存 安全 Java
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
63 4
|
3月前
|
安全 Java
Java面试题:解释synchronized关键字在Java内存模型中的语义
Java面试题:解释synchronized关键字在Java内存模型中的语义
41 1
|
3月前
|
设计模式 缓存 安全
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
48 1
|
3月前
|
存储 安全 Java
(二) 彻底理解Java并发编程之 Synchronized关键字实现原理剖析
Synchronized 关键字(互斥锁)原理,一线大厂不变的面试题,同时也是理解 Java 并发编程必不可少的一环!其中覆盖的知识面很多,需要理解的点也很多,本文会以相关书籍和结合自己的个人理解,从基础的应用范围到底层深入剖析的方式进行阐述,如果错误或疑问欢迎各位看官评论区留言纠正,谢谢!
|
3月前
|
存储 缓存 Java
(一) 玩命死磕Java内存模型(JMM)与 Volatile关键字底层原理
文章的阐述思路为:先阐述`JVM`内存模型、硬件与`OS`(操作系统)内存区域架构、`Java`多线程原理以及`Java`内存模型`JMM`之间的关联关系后,再对`Java`内存模型进行进一步剖析,毕竟许多小伙伴很容易将`Java`内存模型(`JMM`)和`JVM`内存模型的概念相互混淆,本文的目的就是帮助各位彻底理解`JMM`内存模型。
下一篇
无影云桌面