面向对象第二篇

2018-11-21  本文已影响0人  陶然然_niit

面向对象三大特性:

1. 封装 package

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

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

2.继承 inherit

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

例子1:

public class Human {
    public void eat(){
        System.out.println("人在吃饭");
    }
}
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();
    }
}

例子2:
自定义组件:

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

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

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

上一篇下一篇

猜你喜欢

热点阅读