美文网首页
面向对象第二篇

面向对象第二篇

作者: 陶然然_niit | 来源:发表于2018-11-21 11:02 被阅读0次

    面向对象三大特性:

    1. 封装 package

    封装是面向对象编程的核心思想。封装的载体是类,对象的属性和行为被封装在这个类中。
    例子:

    public class Fruit {
        //将水果的名称和价格封装起来
        private String fruitName;
        private String fruitPrice;
    }
    

    2.继承 inherit

    概念:
    子类继承父类,可以继承父类原有的属性和方法,也可以增加其他的属性和方法,可以直接重写父类中的某些方法。

    例子1:

    • Human为父类
    public class Human {
        public void eat(){
            System.out.println("人在吃饭");
        }
    }
    
    • Student为子类
    public class Student extends Human{
        @Override
        public void eat() {
            //调用父类的方法
            super.eat();
            System.out.println("学生在吃饭");
        }
    }
    
    • 测试程序
    public class StudentTest {
        public static void main(String[] args) {
            Human human = new Human();
            human.eat();
            Student student = new Student();
            student.eat();
        }
    }
    
    • 运行结果


      image.png

    例子2:
    自定义组件:

    • 创建MyButton类,继承Button
    import javafx.scene.control.Button;
    
    /**
     * 自定义按钮
     */
    public class MyButton extends Button {
        //自定义构造方法,实现一个指定宽和高和背景色的按钮
        public MyButton(){
            //给当前按钮对象设置合适的尺寸
           this.setPrefSize(100,35);
           //给当前按钮设置背景色、文本色、字体大小
           this.setStyle("-fx-background-color: rgb(19, 209, 190);-fx-font-size: 14px;-fx-text-fill: #FFFFFF");
        }
    }
    
    • 使用这个按钮
    <?xml version="1.0" encoding="UTF-8"?>
    <?import javafx.scene.layout.*?>
    <?import com.soft1841.oop.week1.MyButton?>
    <AnchorPane xmlns="http://javafx.com/javafx"
                xmlns:fx="http://javafx.com/fxml"
                fx:controller="com.soft1841.oop.week1.ButtonController">
        <MyButton text="美团"
                  AnchorPane.leftAnchor="100"
                  AnchorPane.topAnchor="100"/>
        <MyButton text="设置"
                  AnchorPane.leftAnchor="260"
                  AnchorPane.topAnchor="100"/>
    </AnchorPane>
    
    • 主程序
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    import java.net.URL;
    
    public class ButtonApp extends Application {
        @Override
        public void start(Stage primaryStage) throws Exception {
            URL location = getClass().getResource("/fxml/button.fxml");
            FXMLLoader fxmlLoader = new FXMLLoader(location);
            Parent root = fxmlLoader.load();
            Scene scene = new Scene(root,800,600);
            primaryStage.setTitle("自定义按钮");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
    • 运行效果


      自定义按钮

    3.多态 polymorphism

    • 重载Overload

    方法参数类型、个数、返回值不同,使得同名方法呈现不同的状态

    • 重写Override

    子类继承父类,改写父类中的方法,使得子类和父类的同名方法呈现不同的状态

    相关文章

      网友评论

          本文标题:面向对象第二篇

          本文链接:https://www.haomeiwen.com/subject/htcqqqtx.html