java 面向对象

04-14 340阅读

对象:对象是类的一个实例,有状态和行为。

例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

1.创建对象

类名 对象名=new 类名();

调用对象的属性或方法

对象名.属性

对象名.方法

    2.对象的销毁

  1. 对象超过作用范围将自动销毁
  2. 对象被赋值为null时

Eg: 类名 对象名=new 类名();

对象名=null;

 3.类名的命名规则

类名通常是一个名词,使用大写字母开头。例如:Car、Person、Student。

驼峰命名法: 每个单词的首字母大写,其他字母小写。例如:MyClass、BankAccount。

 4.认识成员变量和局部变量

  1. 成员变量:类中方法外的变量(全局变量)

注:有默认的初始值

根据数据类型不同有默认初始值:

引用类型(Object): 默认值为 null

整型(int): 默认值为 0

字符(char): 默认值为 '\u0000'(即Unicode中的空字符)

布尔类型(boolean): 默认值为 false

局部变量:方法里面定义的变量

注:在使用之前一定要赋值才能使用(没有默认的初始值)

就近原则:当两个变量的同名时,输出离他最近的那个变量

public class cc{

public int age; //成员变量

public void method(){

   int age=10;   //局部变量

System.out.println(age);

}

}

5.this关键字:区分成员变量和局部变量

this.name成员变量=name局部变量

public class this关键字 {

    public static void main(String[] args) {

        Dog dog = new Dog("旺财", 5);

    }

}

class Dog {

    String name;

    int age;

    public Dog(String name, int age) {

        /*使用this关键字调用本类中的属性*/

        /*当成员变量和局部变量冲突,可以用这种方法区分*/

        this.name = name;

        this.age = age;

    }

}

6.static关键字

由static修饰的 变量和方法

用于定义静态成员

被称为 静态变量和静态方法

静态成员的调用:类名.静态成员

注意:在静态方法中不可以直接调用非静态的方法

7.final关键字(最后的(指结果):最终的)

凡是被final所修饰的都是不可改变的

final变量:只能被赋值一次

final方法:不能被重写

final类:不能被继承(不能有子类,但是可以有父类)

8.Java的三个主要特征

1.继承

java 面向对象

class 父类{   ……  }

class 子类 extends 父类{   …… }

一个类只能有一个父类,但可以多层继承

子类拥有父类非 private 的属性、方法。

子类继承父类之后可以调用父类创建好成员

Super关键字

Super.成员 访问父类的成员

 2.封装

把属性和方法放到类里面

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

  1. 修改属性的可见性来限制对属性的访问(一般限制为private)

将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏

public class cc{

private String name;

private int age;

}

3.多态 

  • 什么是多态

    同一个对象,在不同时刻表现出来的不同形态

  • 多态的前提

    • 要有继承或实现关系

    • 要有方法的重写

    • 要有父类引用指向子类对象

    • class Animal {

          public void eat(){

              System.out.println("动物吃饭");

          }

      }

      class Cat extends Animal {

          @Override

          public void eat() {

              System.out.println("猫吃鱼");

          }

      }

      public class Test1Polymorphic {

          /*

              多态的前提:

                  1. 要有(继承 \ 实现)关系

                  2. 要有方法重写

                  3. 要有父类引用, 指向子类对象

           */

          public static void main(String[] args) {

              // 当前事物, 是一只猫

              Cat c = new Cat();

              // 当前事物, 是一只动物

              Animal a = new Cat();

              a.eat();

          }

      }

    多态的实现方式

    方式一:重写:父类的方法不能满足子类的需要,子类可以修改父类的方法

    方式二:接口

    1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。

    2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。

    多态中的转型(应用)

    • 向上转型

      父类引用指向子类对象就是向上转型

    • 向下转型

      格式:子类型 对象名 = (子类型)父类引用;

      9.抽象类

      使用abstract定义的类为抽象类,定义的方法为抽象方法(抽象方法没有方法体,需要被重写)

      方法的重写

      重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

      10.构造方法

      目的:当一个对象被创建时候,构造方法用来初始化该对象,而普通方法的目的是执行某些操作。

      名称:构造方法的名称必须与类名完全相同,并且不能有返回类型。普通方法的名称可以任意命名,并且可以有返回类型。

      注意:当创建对象时,系统会自动调用构造方法,没有自定义构造方法时,系统会调用默认构造方法

      11.权限访问修饰符 

      访问范围privatedefaultprotectedpublic
      同一类可以访问可以访问可以访问可以访问
      同一包中的类可以访问可以访问可以访问
      不同包的子类可以访问可以访问
      全局范围可以访问

      注意:被private所修饰的关键字只能在本类访问

      12.接口

      • 接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。

      • 接口用关键字interface修饰

         public interface 接口名 {} 
      • 类实现接口用implements表示

         public class 类名 implements 接口名 {}
      • 接口的子类

        要么重写接口中的所有抽象方法

        要么子类也是抽象类

                                                                                          作者:小淳走四方(一个热爱生活的男孩子) 

                                                                                           当你快坚持不住的时候,困难也快坚持不住了

                                            付出和回报不成正比的时候,难道你要躺平吗?我们的人生不应该往前走吗

           有问题加我微信:欢迎各位和我一起探讨学习上,甚至是生活上的问题!

        微信:18627509101

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]