java面向对象之_类Class
来源:互联网 发布:pptv网络电视官网 编辑:程序博客网 时间:2024/06/05 16:48
一、成员变量&局部变量 成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用二、形式&实际参数 java 方法的实际参数:方法被调用时候,用于接收外部值的参数。 形式参数:方法在声明时的参数 (1)形参代表一个合集,具有不确定性,而形参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例) (2)形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值三、代码块(1)用{}括起来的代码。 (2)分类: A:局部代码块 用于限定变量的生命周期,及早释放,提高内存利用率。 B:构造代码块 把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。 C:静态代码块 对类的数据进行初始化,仅仅只执行一次。 (3)静态代码块,构造代码块,构造方法的顺序问题? 静态代码块 > 构造代码块 > 构造方法 静态代码块优先于对象存在,它定义在方法区四、构造方法 (1)作用:用于对对象的数据进行初始化 (2)格式: A:方法名和类名相同 B:没有返回值类型,连void都不能有 C:没有返回值 思考题:构造方法中可不可以有return语句呢? 可以。而是我们写成这个样子就OK了:return; 其实,在任何的void类型的方法的最后你都可以写上:return; (3)构造方法的注意事项 A:如果我们没写构造方法,系统将提供一个默认的无参构造方法 B:如果我们给出了构造方法,系统将不再提供默认构造方法 如果这个时候,我们要使用无参构造方法,就必须自己给出。 推荐:永远手动自己给出无参构造方法。 (4)给成员变量赋值的方式 A:setXxx() B:带参构造方法五、成员方法 成员方法是可以理解为定义的某一种功能,把功能封装在方法里面,我只要拿到该方法直接调用实现了功能即可,具体内部怎么实现不需要知道 方法定义格式 : public static 返回值类型 方法名(参数类型 变量名1,参数类型2, 变量名2,...)六、权限修饰符 private/public / protected 私有 公有 受保护的 private成员无法被子类,外界访问,这样保证了private成员的安全性 public成员,公有的的修饰符,外界可以直接访问 protected成员只能被自己的以及子类(直接或者间接)以及兄弟(同package包中)访问,无法被"外姓人"访问七、static关键字 static关键字(理解) (1)静态的意思。可以修饰成员变量和成员方法。 (2)静态的特点: A:随着类的加载而加载 B:优先与对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据。 举例:饮水机和水杯的问题思考 D:可以通过类名调用 既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。 (3)静态的内存图 静态的内容在方法区的静态区 (4)静态的注意事项; A:在静态方法中没有this对象 B:静态只能访问静态(代码测试过) (5)静态变量和成员变量的区别 A:所属不同 静态变量:属于类,类变量 成员变量:属于对象,对象变量,实例变量 B:内存位置不同 静态变量:方法区的静态区 成员变量:堆内存 C:生命周期不同 静态变量:静态变量是随着类的加载而加载,随着类的消失而消失 成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失 D:调用不同 静态变量:可以通过对象名调用,也可以通过类名调用 成员变量:只能通过对象名调用 (6)main方法是静态的 public:权限最大 static:不用创建对象调用 void:返回值给jvm没有意义 main:就是一个常见的名称。 String[] args:可以接收数据,提供程序的灵活性八、this关键字 (1)代表当前类的引用对象 记住:哪个对象调用方法,该方法内部的this就代表那个对象 (2)this的应用场景: A:解决了局部变量隐藏成员变量的问题 B:当子类访问父类的show方法时 super.show()
0 0
- java面向对象之_类Class
- Java千百问_05面向对象(014)_如何获取范型的类Class
- Java面向对象编程之抽像类(abstract class)
- Java基础学习笔记之三_面向对象
- Java面向对象_继承
- Java面向对象_多态
- java面向对象_概述
- java学习_面向对象
- Java面向对象_封装
- java学习_面向对象
- Java精选笔记_面向对象(慨念、类和对象)
- Java基础_面向对象_继承
- Java基础_面向对象_多态
- java学习之旅48--面向对象_21_抽象类_抽象方法
- JAVA面向对象之对象和类
- Java面向对象之 类与对象
- java学习之旅30--面向对象_03_类和对象的关系_写出我们的第一个类
- Python的面向对象之class初览
- 通过<ListView>将List<Object>里的属性显示出来
- DayDayUP_Linux运维学习_linux下Tomcat的安装(包含jdk的安装)
- hadoop学习之hadoop完全分布式集群安装
- LeetCode之Balanced Binary Tree
- jsp自定义标签
- java面向对象之_类Class
- JAVA-WEB服务器
- 浏览器兼容解决方案
- [多校] The shortest problem
- hdu 2063 过山车 二分图的最大匹配 匈牙利算法
- Android异步加载学习笔记之三:用AsyncTask实现ListView中的图片数据加载
- Matrix Chain Multiplication
- 简洁界面代码助手
- QML中使用JavaScript