Java_类和对象(封装 抽象类 final关键字)

封装

  • 包的名称一定要小写
  • 包的名称以反域名的写法
  • 在static修饰的方法中访问没有用static修饰的成员变量的使用 需要 先创建对象 在调用属性.
  • 封装 隐藏一些类的具体细节 ,提供了公开的方法来调用
public static void main(String[] args) {
        //封装 隐藏一些类的具体细节 ,提供了公开的方法来调用
        System.out.println("请输入领养的类型(企鹅和狗狗):");
        Scanner scan = new Scanner(System.in);
        String type =  scan.next();
        if ("狗狗".equals(type)) {
            Dog  dog = new Dog();
            System.out.println("请选择狗狗品种");
            dog.type = scan.next();
            System.out.println(dog);
            
        }else {
            Penguin penguin = new Penguin();
            System.out.println("请选择企鹅的名称");
            penguin.name = scan.next();
            System.out.println(penguin);
        }
        
    }





class  Penguin{
    String name;
    
    @Override
    public String toString() {
        return "企鹅的名字为"+this.name;
    }
    }
class Dog{
    String type;
    
    @Override
    public String toString() {
        return "狗狗的类型为" + this.type;
    }
    
}

抽象类

  • 有一个抽象方法的类都需要定义成抽象类
  • 抽象类中可以定义非抽象方法和属性
  • 抽象类是不可以被实例化的
  • 没有抽象方法也可以定义抽象类
abstract class Shape{
       private String name;
       public void setName(String name){
           this.name = name;
       }
       public String getName(){
           return this.name;
            }
       abstract double bc();
       abstract double area();
           public  Shape(){
                 }   
     public  Shape(String name){
        this.name = name;
           }  
 }
   //正方形
   class Square extends Shape{
       //边长
       double sideLength;
      @Override  //周长
    double bc() {
        return this.sideLength*4;
    }
@Override//面积
    double area() {
    return this.sideLength*this.sideLength;
    }
     public Square(){
          }  
       public Square(String name,double sideLength){
           //this.setName(name);
           super(name);
           this.sideLength = sideLength;
           
            }  
 }



 public static void main(String[] args) {
       //Shape shape = new Shape();
       Square squ = new Square("aa",10);
       double area =  squ.area();
       System.out.println("squ的名字为"+squ.getName()+",squ的面积为"+squ.area());

final关键字

用final修饰的类 不能被继承
final修饰的方法不能被重写
final修饰变量不可再更改 变成常量

你可能感兴趣的:(Java_类和对象(封装 抽象类 final关键字))