zoukankan      html  css  js  c++  java
  • java类 面向对象

    类(引用数据类型)

    1.Java为我们提供好的类,如Scanner类,Random类等,

    2.自己创建的类,方法(函数,成员方法)

        属性(类里面的变量  进堆  成员变量(全局变量))

    创建类

    Car.java文件,与类名相同

    public class Car {

    String color="黑色";    // 成员变量     进堆

    double price;

    void run(String color) {  // color局部变量

    int wheel=4;      // 局部变量     进栈

    this.color=color;

    System.out.println( "一辆"+color+"的车用"+wheel+"个车轮在跑" );

    }

    }

    类的使用

    导包:同文件夹下,可以避免导包

    public class CarDemo {

    public static void main(String[] args) {

    Car c = new Car();   // 生成一个车对象

    c.color = "red";

    c.price = 150000;

    c.run("红色");

    }

    }

    面向对象

    面向对象是把构成问题事务分解成各个对象,

    通过对象描叙某个事物在整个解决问题的步骤中的行为。

    类和对象的区别

    类是对某一类事物的抽象描述,对象表示该类中的具体事物。

    局部变量和成员变量区别

    定义位置 方法             

    存储位置 栈(变量)          堆(对象)

    生命周期 方法弹栈消失     对象消失

    初始化   手动赋值初始值   null  0

    基本类型和引用类型作为参数传递

    基本类型作为参数时,传递值给调用的方法,方法(局部)执行完变量值不变

    引用变量作为参数时,传递地址给调用的方法,方法执行完变量值会变

    封装(方法、类)

    优点: 提高了代码的复用性,提高了安全性。

    隐藏了实现细节,对外提供可以访问的接口。概念

    class Person {

    private int age;   // 私有成员变量

    private String name;

    public void setAge(int a){ if (a>0) {age = a; } } // 提供设置方法

    public void getAge(){ return age; } // 提供访问方法

    public void speak() {

    this.name = "小强";  //  this.成员变量     this:本类对象

    this.age = 18;

    System.out.println("name=" + this.name + ",age=" + this.age);

    }

    public boolean equalsAge(Person p) {

    return this.age == p.age; // this代表调用方法的对象

    }

    }

    public class PersonDemo {

    public static void main(String[] args) {

    Person p = new Person();

    p.setAge(30);

    System.out.println("大家好,今年我" + p.getAge() + "");

    }

    }

    继承

    继承是指在一个现有类的基础上去构建一个新的类,

    构建出来的新类被称作子类,现有类被称作父类,

    子类会自动拥有父类所有可继承的属性和方法。

    父类中的私有成员变量了,子类是不能直接访问的。

    优点:

    提高了代码的复用性,提高软件开发效率。

    让类与类之间产生了关系,提供了多态的前提。

    Java中,类只支持单继承,不允许多继承,

    一个类只能有一个直接父类  // C类不可以同时继承A类和B

    多个类可以继承一个父类    // B继承类A,类C继承类A

    多层继承是可以的          // B继承类A,类C继承类B

      

    重写(子类重写父类中成员方法)

    子类方法 修饰符 权限 大于等于父类  public>不写(默认修饰符)>private

    子类方法的返回值类型 方法名 参数列表都要和父类一样。

    this.name                  this子类对象

    super.name 父类属性/方法   super父类对象

    调用方法 就近 子类找不到 再去父类找

    封装:隐藏对象属性与方法的实现细节,对外提供一些公共的访问方式

    继承:子类会自动拥有父类所有可继承的属性和方法。

    多态:配合继承与方法重写提高了代码的复用性与扩展性

  • 相关阅读:
    黑产江湖
    FW/IDS/IPS/WAF等安全设备部署方式及优缺点
    SOAPA来临,SIEM时代终结?
    美国爱因斯坦计划4
    零基础如何学好安卓开发
    协同办公系统能为企业带来怎样的影响?
    阿里腾讯开撕,钉钉的广告打到腾讯的地盘了
    bug管理工具为开发者工作带来哪些改变?
    开发人员必备的几款bug管理工具
    教你玩转产品管理系统iClap(PC端功能篇)
  • 原文地址:https://www.cnblogs.com/javscr/p/10167767.html
Copyright © 2011-2022 走看看