以此记录学习java(vscode)的日子 day10

day 10

  面向对象

    c++ python java

    将大问题拆分成小问题,借助不同的对象去解决,最终实现功能

      定义一个类 创建一个对象 将复杂的对象简单化

  面向过程

   强调按步骤实现功能,先分析解决问题要经过的步骤,然后定义方法实现每个步骤的功能

   然后依次调用方法,去解决问题

  面向对象的语言特征

  面向对象语言的三大特征:

    继承 封装 多态

  对象的理解

    任何事物都是一个对象(oaject)

    对象由对象组成

    每个对象都有属性(静态的描述信息)、行为(动态的功能描述)

    具有相似属性和行为的对象可以归为一类

  类的定义

    具有相同属性和行为的对象可以归为一类,类在java中是一种数据类型

    基本数据类型

    应用数据类型:类 String

  类的组成

    属性

       指这类事物的静态特征

    方法(行为)

       事物所具有的动态功能

类 是对现实生活中 具有共同属性和行为的事物的抽象

   对象是类的实例  类是对象的抽象(数据类型)

类的定义格式

  public 权限修饰符 class 数据类型  Test类名{

    //属性

    权限修饰符 数据类型 变量名;

    public int a;

    //功能(方法、行为)

    权限修饰符  返回值数据类型  方法名(形参列表);{

      //方法语句体

    }

      //功能体语句 构造器 构造方法  创建对象需要用到

  }

变量类型

  成员变量

    定义在类中,方法外;

    在堆内存

    成员变量具有默认值

    生命周期:随着对象的存在而存在

  局部变量

    定义在方法中,或者方法的形参列表上;

    在栈内存

    没有默认值

    生命周期:随着方法的调用而生成,方法调用完毕消失

封装

  是面向对象语言的三大特征,另外两个是继承和多态

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

    提高安全性

    用户不需要知道内部具体复杂的实现。只需要使用对应的功能即可

  封装的原则

    把不需要对外提供的内容隐藏起来

    把属性隐藏掉,提供方法来修改,保证数据的安全

      属性:

        余额

      stu1.name = "张三";

      card.balance = 10000;

  封装的实现

    1. 用 private 修饰成员属性(成员变量)

    2. 提供对应的公开的 public set和 public get方法

this关键字

  this关键字可以用来区分局部变量和成员变量

  public void setId(String id){

    this.id = id; // this.id 就是成员变量

  }

  public void setId(String newId){

    id = newId; // id 就是成员变量

  }

构造函数(构造方法)

  构造方法可以对对象进行初始化操作

  当为对象开辟内存空间时,就给对象的成员变量赋初始值

  在创建对象的时候,每创建一次对象就会执行一次构造方法

  构造方法不能手动调用

  用户如果没有写无参构造器,那么系统会默认提供一个;

  当用户有写无参构造器,系统不提供了。

  在构造方法中,可以借助this调用其他构造方法,

  必须放到构造方法中的第一行有效代码上

构造方法的格式

  java程序 一般会有测试类和基础的区分

    测试类

      包含main方法,作为程序的入口

        基础类

         student

         teacher

  练习

/手机品牌 :小米,价格:2999

//打电话

//给 老默发信息:我要吃鱼

基础类

public class phone{
    String brand;
    int price;
    String color;
    //定义一个变量,给谁发短信
   
    public void call(String name,String say){
        System.out.println("给"+name+"打电话:"+say);
    } 

    public void sayNote(String name,String message){
        System.out.println("给" +name+"发信息:"+message);
    }

    public void sayHello(){
        System.out.println("手机的品牌: "+brand+", 价格:"+price+"。颜色是:"+color);
    }
}


 

ublic class phoneTest{
public static void main(String[] args) {
    // 创建people实例
    phone p = new phone(); 

    p.brand="小米";
    p.price=2999;
    p.color="red";  

    p.sayHello();
    p.sayNote("老莫","你莫走");
    p.call("老莫","想你啊!");
    
    // javac phone.java phoneTest.java
    // java phoneTest
    
  }
}

定义一个动物类

属性包含:名字

种类:猫 狗

方法:

say Hello

  我是 狗子 ,我的名字是 点点   ,我一岁啦  我的颜色是白色

eat()

  猫吃鱼

  狗吃肉

  熊猫 吃 竹子

public class Animal{
    String type;
    String name;
    int age;
    String color;
    
    // public void sayHello(String kinds,String name,int age,String color){
    //     System.out.println("我是" +kinds+",我的名字是"+name+",我"+age+"岁啦!我的颜色是"+color);

    // }

    public void sayHello(){
        System.out.println("我是" +type+",我的名字是"+name+",我"+age+"岁啦!我的颜色是"+color);
    }

    public void eat(String food){
        System.out.println(type+"吃"+food);
    }
}
public  class AnimalTest{
    public static void main(String[] args) {
        Animal animal1 = new Animal();
        animal1.type="小狗";
        animal1.name="点点";
        animal1.age=1;
        animal1.color="白色";
        animal1.sayHello();
        animal1.eat("肉肉");

        Animal animal2 = new Animal();
        animal2.type="猫";
        animal1.name="花花";
        animal1.age=6;
        animal1.color="花花的";
        animal1.sayHello();
        animal1.eat("鱼鱼");
         
        Animal animal3 = new Animal();
        animal3.type="熊猫";
        animal1.name="八宝";
        animal1.age=3;
        animal1.color="黑白相间";
        animal1.sayHello();
        animal3.eat("竹子");        
    }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值