Java入门——面向对象基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java入门——面向对象基础相关的知识,希望对你有一定的参考价值。

Java入门——抽象类与接口的应用


本Blog内容

  1. 为抽象类与接口实例化
  2. 抽象类的实际应用——模板设计
  3. 接口的实际应用——制定标准
  4. 设计模式——工厂设计
  5. 设计模式——代理设计

为抽象类与接口实例化

  利用多态性

 1 package Sep16;
 2 
 3 public class AbstractCaseDemo1 {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         Abstract a=new BAbstract();
11         a.print();
12     }
13 
14 }
15 abstract class Abstract{
16     public abstract void print();
17 }
18 class BAbstract extends Abstract{
19     public void print(){
20         System.out.println("Hello Word!!!");
21     }
22 }

抽象类的实际应用——模板设计

  就是先用抽象类设计一张空白的模板,具体不同之处用子类实现。

 1 package Sep16;
 2 
 3 public class AbstractCaseDemo2 {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         Person student=new Students("Bob",21,89f);
11         Person worker=new Workers("搬砖哥",22,9999);
12         student.say();
13         worker.say();
14     }
15 
16 }
17 abstract class Person{
18     private String name;
19     private int age;
20     public Person(String name, int age) {
21         super();
22         this.name = name;
23         this.age = age;
24     }
25     public String getName() {
26         return name;
27     }
28     public int getAge() {
29         return age;
30     }
31     public void say(){
32         System.out.println(this.getContent());//说话的功能,Person类的方法
33         
34     }
35     public abstract String getContent();//说话的具体内容,根据不同的人,有不同的定义
36 }
37 class Students extends Person{
38     private float score;
39     public Students(String name, int age, float score) {
40         super(name, age);
41         this.score = score;
42     }
43     public String getContent(){
44         return "学生信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",成绩:"+this.score;
45     }
46 }
47 class Workers extends Person{
48     private float salary;
49     public Workers(String name, int age, float salary) {
50         super(name, age);
51         this.salary = salary;
52     }
53     public String getContent(){
54         return "工人信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",工资:"+this.salary;
55     }
56 }
学生信息:姓名:Bob;年龄:21,成绩:89.0
工人信息:姓名:搬砖哥;年龄:22,工资:9999.0

 


接口的实际应用——制定标准

package Sep16;

public class AbstractCsseDemo03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Computer.plugin(new Flash());
		System.out.println("---------------------");
		Computer.plugin(new Print());
	}

}
interface USB{//定义USB标准
	public void start();
	public void stop();
}
//定义实现USB接口的U盘类
class Flash implements USB{
	public void start(){
		System.out.println("U盘开始工作!");
	}

	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("U盘停止工作!");
	}
}
//定义实现USB接口的打印机类
class Print implements USB{
	public void start(){
		System.out.println("打印机开始工作!");
	}

	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("打印机停止工作!");
	}
}
class Computer{
	public static void plugin(USB usb){//实现了USB接口的类都可以传递过来
		usb.start();
		System.out.println("======设备工作中=====");
		usb.stop();
	}
}

  

U盘开始工作!
======设备工作中=====
U盘停止工作!
---------------------
打印机开始工作!
======设备工作中=====
打印机停止工作!

设计模式——工厂设计

  类似于Java的JVM虚拟机,采用Factory类的形式处理主函数与子类之间的关系。

  

 

以上是关于Java入门——面向对象基础的主要内容,如果未能解决你的问题,请参考以下文章

会一点java,有面向对象编程基础,选择入门unity有很大难度吗?应如何有效的入门?

Java入门——面向对象基础

Java入门——面向对象基础

Java核心基础(30天入门)笔记

Java零基础入门 2:java面向对象

JAVA入门零基础小白教程day06-类和对象