java面向对象(类与对象)

1、如何用java语言描述现实世界的事物呢?
    举例:人
        五官,姓名,年龄,性别....
        吃饭,学习,说话....
    
    水杯:
        颜色,材质,形状,容积...
        装水,泡茶...
    
    属性:用于描述事物的信息
    行为:用来描述事物能够做什么的

    我们学习编程语言,目的其实用来描述现实世界的事物
    而我们现在所学的语言:java
    现在就要开始学习如何用java来描述一个现实世界的事物
    首先,我们知道java的最基本的单位是:类
    所以我们应该通过java中的类去描述现实世界的事物
    按照我们分析现实事物的角度出发得到一个与java中类的对应关系
    现实事物:                                       
        属性:用于描述事物的信息                            
        行为:用来描述事物能够做什么的                       
        
    类:
        成员变量:用于描述事物的信息
                 定义一个成员变量:
                    1、定义的位置:再类中方法外
                    2定义的格式:数据类型 变量名;
                 成员变量与局部变量的区别:
                    1、在类中定义的位置不同
                         成员变量:在类中、方法外;
                         局部变量:在方法内定义
                    2、在内存中的位置不同
                         成员变量:在堆内存中
                         局部变量:在栈内存中
                    3、初始化值也不相同
                         成员变量:系统根据不同的数据类型赋予不同的初始值(int short byte long:0;float  double:0.0;String :null;boolean:false;  引用数据类型:null; char:/#0000)                                  
                         局部变量:系统不会自动赋值,在使用之前必须手动赋值,斗则不能使用;
                    4、生命周期不同
                         成员变量:随着对象的创建而创建,随着对象的消失而消失;
                         局部变量:随着方法的调用而创建,随着方法的调用完毕而消失;
                    注意事项:
                        1、局部变量的名字可以和成员变量的一样,在方法内部用到这个变量的时候,采用就近原则,首先先到
                           方法的内部去找,若找不到再去成员变量中查找;
                        2、方法之间的局部变量不能相互调用;        
                 获取成员变量的方法:
                    1、提供一个单个公共的方法去获取所有的变量值;
                    2、单个使用共公共的方法,一个一个的获取打印(开发使用),原因:单个使用比一起使用灵活度较高
                        private:
                            1、被private修饰的变量只能在本类中使用;
                            2、可以修饰成员(成员变量和成员方法);        
                            3、作用
                               1)通过对象给成员变量赋值的时候,可以赋值一些非法的数据,private可以保证在赋值之前
                               先做一次判断,数据校验,依旧是对即将赋值的数据做出判断;
                               2)规定了调用成员变量赋值必须使用我们给的public修饰的方法进行赋值;
                         
        成员方法:用来描述事物能够做什么的
                 定义一个方法:
                    1、定义的位置:再类中;
                    2、定义的格式:
                        修饰符 返回值类型 方法名(参数列表){
                                    方法体;
                        }
                 
    类:是一组成员变量和成员方法的集合,可以把类看作一个抽象的概念
            在一个java文件可以定义多个类,我们这里,就先定义基本的类,和测试类将来编译的时候,
            JVM会读取java文件,有多少个class类,就编译生成多少个.class文件   
        注意:一个java文件中只能有一个class文件被public修饰,记住被public修饰的类名规范是要与java文件名
              一致
        在测试类中如何使用类的?
             答:创建该类的对象去使用;
        创建类的对象的格式:
             类名 对象名 = new 类名();

        形式参数的问题:
            1、当形式参数是基本数据类型的时候,将来要调用时传入的参数是常量值,或者是该类型的变量;
            2、当形式参数是引用数据类型的时候,将来调用方法时传入的是该类对象的地址值;
            3、当形式参数是基本数据类型的时候,在方法中对变量作修改,不会影响到外部实际的栈中的值;
            4、当形式参数是引用数据类型的时候,在方法中对变量作修改,会影响到外部实际的堆内存中的值;
    对象:是该类的具体的表现,具体到一个个体
          匿名对象:就是没有名字的对象
          匿名对象的使用场景:
                1、调用方法的时候,当调用一次的时候,可以使用匿名对象
                    注意:当调用多次方法的时候,就不适合使用匿名对象,每次new的时候都是一个新的匿名对象
                          会频繁在堆内存中开辟空间;
                          当匿名对象使用完毕之后,无法使用第二次,就会变成一个垃圾,等待被垃圾回收器回收
                2、当方法的参数是一个类的时候,可以使用匿名对象的调用方法;
    
    
    
    举例:
        事物:人
            属性:姓名,性别,年龄...
            行为:吃饭,睡觉,学习...
        
        类:Person
            成员变量:name,gender,age
            成员方法:eat(),sleep(),study()
        
        对象:是该类的具体的表现,具体到一个个体
            学生,老师,医生,律师,程序员
            
    封装:其实就是隐藏对象的属性和相关的实现细节,仅仅对外提供公共的访问方式;
    
    java中规范定义一个类的标准版本1.0:
         1、将成员变量用private修饰;
         2、提供公共的方法setXxx()和getXxx();
         3、提供一个打印所有成员变量的方法
    java中规范定义一个类的标准版本2.0:
         1、成员变量被private修饰;
         2、成员方法:setXxx()和getXxx(),其中setXxx()形参的名字与成员变量
            的名字一致,使用this关键字赋值
            (例如:this 成员变量名称 = 成员变量名称(这里指的是形参);
            
            
    
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值