小白猿笔记Day6(面向对象)

面向过程:一种编程的思想,强调的过程,凡是亲力亲为(缺点繁琐);

面向对象(oop)一种编程的思想,强调的结果(不在意过程);

抽象的,不是具体的东西,类似于类型,我们将其理解成一类事物的模板

面向对象的三大特征----面试题

  1. 封装: 把相关的数据封装成一个“类”组件
  2. 继承: 是子类自动共享父类属性和方法,这是类之间的一种关系
  3. 多态: 增强软件的灵活性和重用性

对象是具体的,是根据类具体创造的事物

数据结构:

1.数组

2.队列;先进先出FIFO(first in first  out)

3,栈:后进先出LIFO(last  in first out)

在这里插入图片描述

1、在栈内存中开辟一块空间,存放应用类型变量p,并把p压入栈底

2、在堆内存中开辟一块空间,存放Phone对象

3、完成对象的初始化,并赋予默认值

4、给初始化完毕的对象赋予唯一的地址值

5、把地址值交给引用类型变量p来保存

public class TestCat {
    public static void main(String[] args) {
        cat c = new cat();
        c.jump();
        c.miaomiao();
        c.eat();
        c.age=3;
        c.color="黑白想间";
        c.hosts="图图";
        c.name="小白";
        System.out.println(c.color+"颜色de"+c.name+c.age+"岁"+"主人是"+c.hosts);


        cat c1=new cat();
        c1.jump();
        c1.eat();
        c1.miaomiao();
    }


}
class cat{
    int age;
    String  color;
    String  name;
    String  hosts;

    public void jump() {

        System.out.println("小猫跳的很高");
    }

    public void miaomiao() {

        System.out.println("喵喵叫");
    }

    public void eat() {
        System.out.println("爱吃鱼");
    }
}

注意:属性,功能,赋值//(等于同一类型的商品,功能配置相同,不同人使用的属性方式不一样)

****同包下面不能出现相同的类

 顺序,先创建(商品)名称,----创建属性(与class平级)----在创建功能(可以在main方法中调用)----在进行赋值

 补:调用方法

注释:satic在main方法进行,main是静态,在静态下,方法也是需要静态

封装的思路

1,用private修饰资源

2,提供公共的get方法---来获取值

3,提供巩固的set的方法--用来设置值

封装方法的思路:

1,用private来修饰资源

2.用本类的公共方法调用这个被封装方法的功能

eg: 

public class TestCar {
    public static void main(String[] args) {
        Car  c=new Car();
       //c.brand="华为";
        // c.color="黄蓝绿";
        c.setBrand("bwm");
        c.setColor("红黄蓝");
        System.out.println(c.getBrand());
        System.out.println(c.getColor());
        c.setPrice(111200);
        c.setLength(5.5);
        System.out.println(c.getPrice());
        System.out.println(c.getLength());
        System.out.println("品牌:"+c.getBrand()+"颜色是"+c.getColor()+"价格"+c.getPrice()+"元"+"车长"+c.getLength()+"m");
        c.stop();
        c.start();


    }
}
//1.抽象汽车这一类事物的共同点,用Class描叙
class Car{
    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    //2.属性--用成员变量的描述
   private String brand;//品牌

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    private String color;//颜色
    //3.功能--用发法来描叙


    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    private     double price;//价位

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    private   double length;//车长.同样可以进行赋值

    public void start() {
        System.out.println("汽车启动了");
    }

    public void stop() {
        System.out.println("汽车停止了");
    }
}

 注:

在这里插入图片描述

 拓展:匿名对象,一次只能调用一个方法,只能用一次(new car().stop)        

package cn.tedu.oop;

import com.sun.media.jfxmedia.events.PlayerEvent;
import sun.font.EAttribute;

import javax.net.ssl.HostnameVerifier;

public class TestDog {
    public static void main(String[] args) {
        Dog  d=new Dog();
        d.setAge(1);
        d.setHost("图图");
        d.setKind("斗牛");
        d.setName("小白");
        d.setPrice(10000);
        System.out.println(d.getAge());
        System.out.println(d.getHost());
        System.out.println(d.getKind());
        System.out.println(d.getName());
        System.out.println(d.getPrice());
        Dog d2 =new Dog();

        d2.setName("哮天犬");
        d2.setAge(5);
        d2.setKind("猎犬");
        d2.setHost("二郎神");
        d2.setPrice(999.99);
        System.out.println(d2.getName());
        System.out.println(d2.getAge());
        System.out.println(d2.getKind());
        System.out.println(d2.getHost());
        System.out.println(d2.getPrice());
        Dog d1= new Dog();
        d1.setName("罗小黑");
        d1.setAge(5);
        d1.setKind("神奇犬");
        d1.setHost("大自然");
        d1.setPrice(10000);
        System.out.println(d1.getName());
        System.out.println(d1.getAge());
        System.out.println(d1.getKind());
        System.out.println(d1.getHost());
        System.out.println(d1.getPrice());

        d.run(" 罗小黑 ");
        d.eat(23);
        d.sleep(4.4);
        d.play(d.getHost());
        d.bark("开心");
        System.out.println(d.play(d.getHost()));//可以结算返回值
        System.out.println(d.eat(100));
        System.out.println(d.bark("ka"));

    }
}
class Dog{
    private String bark;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getKind() {
        return kind;
    }

    public void setKind(String kind) {
        this.kind = kind;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    private String  name;
    private int    age;
    private String  kind;
    private String  host;
    private double  price;

    public void run(String name) {
        System.out.println("小狗"+name+"跑的老快了");
    }

    public int eat(int n) {

        System.out.println("小狗今晚要吃"+n+"跟肉骨头");
        return 0;
    }

    public void sleep(double num) {

        System.out. println("小狗睡了"+num+"个小时");
        return ;
    }

    public String  play(String host) {
         System.out.println("小狗与主人"+host+"玩的开心");

        return "飞盘";
        //bark();//遇到return时已经结束了本方法,return后不可以直接写代码
    }

    public String bark (String play) {//*Strin与int的类型
        System.out.println("玩"+play+"的时候才");
        return "喜欢 ";
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值