木舟0基础学习Java的第六天(面向对象,匿名对象,封装)

面向对象

面向对象思想特点:一种更符合思想 可以将复杂的东西简单化 从执行者变为指挥者

面向过程:(例)把大象装冰箱 第一步把冰箱门打开 第二步把大象装进去 第三步把冰箱门关上

面向对象:创建一个对象(让对象去做事)

例(做饭):买米 付钱 回家 淘米 做饭  出锅 吃饭 洗碗  从第一步到最后一步都是我在执行

                  :找饭店 点单 让老板去做(米+淘米+做饭)吃饭 给钱  从执行者变为指挥者

面向对象的3大特性:封装,继承,多态

类与对象

动物(类):鸡,鸭,猪,老虎,猴子

人(类):男人,女人,小孩,老人,人妖

描述现实生活中的人类:信息 姓名 性别 年龄 身高 体重 住址 能做什么:吃,喝,拉,撒,睡

用Java描述:属性(该事物的描述信息 名词) 行为(该事物能做什么 动词)

public class Student {
    //创建成员属性
    String name;//姓名
    int age;    //年龄
    int stuNo;  //学号

    //创建成员方法
    public void study(){
        System.out.println("正在学习");
    }
    public void sport(){
        System.out.println("正在运动");
    }
}

图上学生类写完 运行需要 写测试类(main())

测试类文件名 应和学生类一致 Demo_Student 

Java中最基础的单位是类:java中的类 用class描述

class(类)中:成员属性 事物的属性 姓名 年龄...

               成员方法 事物的行为 吃饭 睡觉...

类:一组相关的属性和行为的集合

对象:该类事物的具体实现

如何使用对象:Student s=new Student();创建对象 对象名为s

格式:类名 对象名=new 类名();

对象名:要使用合法标识符 满足驼峰命名法

使用对象:对象名.变量名 (s.name=" 木舟";s.age=25;s.stuNo=1001;)

使用方法:对象名.方法名(s.study();)

垃圾回收机制:如果没有任何引用指向该对象 那么该对象就会变成垃圾 java中有完善的垃圾回收机制 会在不定时的对其进行回收 不需要手动设置null java有自动回收机制

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

在类中的位置不同:成员变量(在类中 方法外),局部变量(在方法定义中或者方法声明上)

初始化不同成员变量(可以不赋值,有默认初始化值),局部变量(必须定义赋值才可以使用)

在内存中位置不同:成员变量(堆),局部变量(栈)

生命周期不同

在方法中定义的变量 局部变量 只在方法内有效 形式参数属于局部变量 如果方法内有与成员变量同名的变量 那么就近原则取最近的

测试类中 给方法传类的参数

 // Car c=new Car();//有名对象
       // print(c);//方式1
       // print(new Car());//方式2 //匿名对象 只适合对方法的1次调用
        //多次调用会产生多个对象不如使用有名对象 调用完毕后就是垃圾 会被垃圾回收器回收
        //好处节省代码
        new Car().open();//匿名对象 直接调用Car类中的方法
        //匿名对象可以调用属性 但是没有意义 因为调用后就变成了垃圾
        //如果需要赋值必须用有名对象
    }
    public static void print(Car c){
        c.colour=("灰色");
        c.tyre=(4);
        System.out.println(c.colour+"-------"+c.tyre);
        c.open();
        c.stop();
        c.brake();
    }

有名对象:

匿名对象:可以作为实际参数传递

public static void main(String[] args){

        for(int i=1;i<=100;i++){
            method(new Car());
        }
    }

    public static void method(Car c){
        c.tyre=4;
        c.colour="白色";
        c.run();
    }

封装:是指隐藏对象的属性和实体细节 仅仅对外提供公共访问方式

好处:隐藏实现细节 提供公共访问方式 提高代码复用性 提高安全性

原则:将不需要对外提供的内容都隐藏起来

开发过程中一般都要把类私有化

单词 private get set

public class Person {
   private String name;//封装名字
   private int age;//封装年龄
    //提供对外设置名字的方法
    public void setName(String n){
        name=n;
    }
    //提供对外访问年龄的方法
    public String getName(){
        return name;
    }

    //提供对外设置年龄的方法
    public void setAge(int a){
        if(a>0&&a<=120){
            age=a;
        }else{
            System.out.println("请填写正确年龄");
        }
    }
    //提供对外访问年龄的方法
    public int getAge(){
        return age;
    }
    public void show(){
        System.out.println(name+"--"+age);
    }
}
public class Demo_Person {
    public static void main(String[] args) {
        Person p=new Person();
        p.setName("木舟");
        p.setAge(25);
        String n=p.getName();
        int a=p.getAge();
        System.out.println(n+"---"+a);
        p.show();
    }
}

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值