专业的JAVA编程教程与资源

网站首页 > java教程 正文

《JavaSE基础》第8篇:封装和继承(java封装简单例子)

temp10 2024-11-13 12:41:55 java教程 11 ℃ 0 评论

private关键字

使用【private】修饰的私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供
公有方法,包括用于获取属性值的【getXxx()】方法和设置属性值的 【setXxx()】方法。set和get方法
都属于实例方法,不能带有static,实例方法的调用必须先【new】对象。使用 "引用."的方式调用。
    
get方法要求:
    public 返回值类型 get+属性名首字母大写(无参) {
        return xxx;
    }

set方法要求:
    public void set+属性名首字母大写(参数) {
        xxx = 参数;
    }  

符合JavaBean规范的类封装过程

在Java中符合JavaBean规范的类封装的要求:
    1.所有的成员变量都要私有化 ==> 使用"private"修饰
    2.必须显式提供一个无参数的构造方法
    3.要求给使用private修饰的成员变量提供对应的操作方法 ==> Setter Getter
public class Application {
   public static void main(String[] args) {
       Person person = new Person();
       //person.setAge(-19); // 对年龄判断,不合法
       person.setAge(19);
       person.speak();
   }
}
==================================
//Person类
public class Person {
   //属性私有封装,get/set
   private int age; //年龄
   //无参构造方法
   public Person() {
       
   }
   //有参构造方法
   public Person(int age) {
       this.age = age;
   }
   //set和get方法
   public int getAge() {
       return age;
   }
   public void setAge(int age) {
       //设立关卡
       if (age > 120 || age < 0) {
           System.out.println("您输入的年龄不正确!");
      }else {
           this.age = age;
      }
   }

   public void speak() {
       System.out.println("年龄:" + age + "岁了!");
   }
}

多类合作

在开发中,除了基本数据类型,大多数情况下,都是类对象操作数据,所以类可以作为
    1.方法的参数
    2.类定义时自定义类型作为成员变量数据类型

匿名对象

匿名对象:
    new 构造方法(必要的参数);
匿名对象的参数:
    1.使用匿名对象直接调用类内的成员方法
    2.匿名对象直接作为方法的参数
注意:
    使用匿名对象不要操作成员变量,有可能有去无回

继承

在Java中,类的继承是类与类之间的关系,一个类为子类(也叫派生类),另一个类为父类(也叫基类),子类
继承父类,子类会自动拥有父类除构造方法以外的所有属性和方法,私有的也是可以继承的,只是子类
无法直接访问父类的私有属性。使用关键字 extends 表示继承

类与类之间继承的格式:
    class 子类名 extends 父类名 {
        //程序代码
    }

注意事项:
   1.在Java中,类只支持单继承,也就是说一个类只能有一个直接父类
   2.多个类可以继承同一个父类
   3.允许多层继承,就是一个类的父类可以再去继承另外的父类
   4.子类和父类是一种相对概念,就是说一个类是某个类父类的同时也可以是另一个类的子类
   5.Java中规定,子类继承父类,除构造方法不能继承外,其他都可以继承,但是私有的属性无法在子
类中直接访问
   6.Java中的类没有显式的继承任何类,就默认的继承Object类,Object类是所有类的超类

继承内存分析图

动物之间的继承案例

//定义一个动物类
public class Animal {
   String name;

   public void shout() {
       System.out.println("动物在叫");
  }
}
==============================
//定义一个 Dog类 继承 Animal类
public class Dog extends Animal {
   //定义一个打印名字的方法
   public void printName() {
       System.out.println("名字是:" + name);
  }
}
==============================
//主方法
public class Application {
   public static void main(String[] args) {
       Dog dog = new Dog(); //实例化对象
       dog.name = "二哈"; //赋值
       dog.printName();  //调用dog对象的printName()方法
       dog.shout(); //调用从Dog类继承下来的shout()方法
  }
}

方法重写

在继承关系中,子类会自动继承父类中的方法,有时因为继承的方法无法满足子类的具体需求,会对
从父类继承来的方法进行修改,也就是方法【重写】。子类中重写的方法需要和父类被重写的方法具
有相同的方法名,参数列表以及返回值类型。子类重写父类方法时,不能使用比父类中被重写的方法
更严格的访问权限。
    
方法重写注意事项:
    1.两个类必须要有继承关系
    2.方法名必须相同
    3.参数列表必须相同
    4.子类重写父类方法时,不能使用比父类更严格的访问权限
    5.子类不能抛出比父类更大的异常
class Animal {
    public void shout() {
        System.out.println("动物发出叫声");
    }
}
===============================
//Dog类继承Animal类
class Dog extends Animal {
    //重写从父类继承来的方法
    @Override
    public void shout() {
        System.out.println("汪汪......");
    }
}
===============================
//主方法
public class Application {
    public static void main(String[] args) {
        Dog dog = new Dog();//创建Dog类的实例对象
        dog.shout();//调用Dog类重写的shout()方法
    }
}



《JavaSE基础》第8篇:封装和继承(java封装简单例子)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表