A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 种花加 初级黑马   /  2018-1-29 13:55  /  870 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

内存图:
        栈  没有默认值
        堆  是有默认值的
        方法区:类的字节码文件.class(成员变量,成员方法)
        成员变量跟随对象进入堆内存(每个成员变量都是特有的)  成员方法功能都一样没必要放堆里面


        万物皆对象!!!
面向对象的思想:
        面向对象是基于面向过程的编程思想
        面向过程:强调的是每一个功能的步骤
        面向对象: 强调的是对象,然后由对象去调用功能
面向对象的思想特点:
        A:是一种符合我们思考习惯的思想
        B;可以将复杂的事情简单化
        C;讲我们从执行者变成了指挥者
java语言是基本的单位是类,所以,我们在后面的学习过程中,是通过类体现现实世界的事物的;
        对象:就是该事物的具体表现


使用一个类 ,其实就是使用该类的成员。(成员变量和成员方法)
而我们要使用一个类的成员,就必须首先拥有该类的对象。
创建对象:
        格式: 类名 对象名=new 类名();
new出来的东西都是在堆里面 ,(堆里面的东西是有默认值的)
对象访问成员:
        成员变量: 对象名.变量名
        成怨方法: 对象名.方法名


成员变量与局部变量的生命周期不同
成员变量随着对象的挂掉挂掉
局部变量随着方法的结束而挂掉

成员变量和局部变量的区别:
        在类中的位置不同:
                成员变量:类中,方法外
                局部变量:方法中或者方法声明上(形式参数)
        在内存中的位置不同:
                成员变量:堆内存
                局部变量:栈内存
        声明周期不同
                成员变量;随着对象的创建而存在,随着对象的消失而消失
                局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
        初始化的问题
                成员变量:幽默值
                局部变量:没有默认值,必须先赋值,在调用


private关键字
       
                局部变量,没有默认值,必须先赋值,再使用
通过对象直接访问成员变量,会存在数据安全问题(客观世界里成员变量都是隐藏在i对象内部,外界无法直接访问)
private:
        是一个修饰符
        可以修饰成员变量,也可以修饰成员方法(不可以修饰局部变量)
        被private修饰的成员只能在本类中访问。
针对private修饰的成员变量,我们会相应的提供getXxx()和setXxx()用于获取和设置成员变量的值,方法用public修饰。


this是解决成员变量和局部变量同名的问题
this代表的是该类的引用
如果有局部变量名和成员变量名相同,在局部使用时候,采用的是就近原则。
        用this关键字

this:代表所在对象的引用
方法被哪个对象调用,this就代表那个对象  eg: s.setName("林青霞");(this在这个方法里面出现)  this 就代表s
使用场景:
        局部变量隐藏成员变量



构造方法:
        给对象的数据进行初始化
格式:
        方法名和类名相同
        没有返回值类型,连void都不写
        没有具体返回值类型
调用:
        通过new关键字调用
        格式: 类名 对象名 = new 构造方法();
注意:
        如果我们没写构造方法,系统会提供一个默认的无参的构造方法供我们使用
        如果我们给出了构造方法,系统将不再提供无参的构造方法,此时,需要使用无参必须自己提供
       
成员变量赋值:!!!!!!
        A: setXxx(); 封装
        B:有参的构造方法

构造方法和set方法都可以给成员变量赋值:
但是对于一个对象而言构造方法只能调用一次
但是set方法可以调用无数次
所以set方法可以用来给成员变量修改值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马