面向对象三大特性:
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
子类继承父类,改写父类中的方法,使得子类和父类的同名方法呈现不同的状态
网友评论