一篇文章带你入门java面向对象

目录
  • 一、继承
    • 示例:
  • 二、重载
  • 三、接口
    • 1、接口与类相似点:
    • 2、接口与类的区别:
    • 3、语法
  • 四、枚举
    • 1、定义
    • 2、迭代枚举元素
    • 3、在 switch 中使用枚举类
  • 总结

一、继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为

本章就以人、学生、老师作为例子。学生和老师都继承人这个对象,都有人的特征和行为,人就是父类,老师和学生就是子类

示例:

人类:

package com.zhouzy.base.t7;
public class Person {
	private String name;
	private String sex;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void action(Person p){
		System.out.println("这是人的行为");
		System.out.println("person的名字:"+p.getName());
	}
}

学生:

package com.zhouzy.base.t7;
public class Student extends Person{
	/**
	 * 这就是重写
	 */
	@Override
	public void action(Person p){
		System.out.println("这是学生的行为");
		System.out.println("Student的名字:"+p.getName());	//继承了父类的属性
	}
}

老师:

package com.zhouzy.base.t7;
public class Teacher extends Person{
	@Override
	public void action(Person p){
		System.out.println("这是老师的行为");
		System.out.println("Teacher的名字:"+p.getName());
	}
}

测试:

package com.zhouzy.base.t7;
import org.junit.Test;
public class ObjectTest {
	@Test
	public void extendsTest(){
		Person p1 = new Student();
		p1.setName("张三");
		p1.action(p1);
		Person p2 = new Teacher();
		p2.setName("刘老师");
		p2.action(p2);
	}
}

结果:

这是学生的行为
Student的名字:张三
这是老师的行为
Teacher的名字:刘老师

二、重载

重载是在一个类里面方法名相同,但返回值或者参数类型或个数不同,比如

    private String testOverload(){
		return "Overload";
	}
	private String testOverload(String param){
		return "Overload";
	}
	private void testOverload(int param){
		System.out.println(param);
	}
	private String testOverload(String param1,String param2){
		return "Overload";
	}

重写和重载是java多态的一种体现

三、接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

1、接口与类相似点:

一个接口可以有多个方法。

接口文件保存在 .java 结尾的文件中,文件名使用接口名。

接口的字节码文件保存在 .class 结尾的文件中。

接口相应的字节码文件必须在与包名称相匹配的目录结构中。

2、接口与类的区别:

接口不能用于实例化对象。

接口没有构造方法。

接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。

接口不能包含成员变量,除了 static 和 final 变量。

接口不是被类继承了,而是要被类实现。

接口支持多继承。

3、语法

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

示例:

package com.zhouzy.base.t2;
public interface Car {
	public void move();
}

实现接口的类,必须实现接口里面的方法

package com.zhouzy.base.t2;
public class Baoma implements Car{
	@Override
	public void move() {
		System.out.println("我是宝马,时速最高200公里每小时,牛擦吧!");
	}
}

四、枚举

1、定义

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

例如定义一个颜色的枚举类。

enum Color
{
    RED, GREEN, BLUE;
}

示例:

enum Color
{
    RED, GREEN, BLUE;
}
public class Test
{
    // 执行输出结果
    public static void main(String[] args)
    {
        Color c1 = Color.RED;
        System.out.println(c1);
    }
}

结果:

RED

2、迭代枚举元素

enum Color
{
    RED, GREEN, BLUE;
}
public class MyClass {
  public static void main(String[] args) {
    for (Color myVar : Color.values()) {
      System.out.println(myVar);
    }
  }
}

结果:

RED
GREEN
BLUE

3、在 switch 中使用枚举类

enum Color
{
    RED, GREEN, BLUE;
}
public class MyClass {
  public static void main(String[] args) {
    Color myVar = Color.BLUE;
    switch(myVar) {
      case RED:
        System.out.println("红色");
        break;
      case GREEN:
         System.out.println("绿色");
        break;
      case BLUE:
        System.out.println("蓝色");
        break;
    }
  }
}

结果:

蓝色

总结

本篇文章就到这里了吗,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 详细理解JAVA面向对象的封装,继承,多态,抽象

    目录 类和对象的使用(面向对象思想落地的实现): 子类对象实例化的全过程 1.从结果上看:(继承性) 2.从过程上来看: 1.封装性 2.继承性 继承性的好处: 3.多态性 虚拟方法调用 4.抽象性 1.抽象类的特点: 2.天生的父类:抽象类 3.抽象方法 总结 创建类的对象 = 类的实例化 = 实例化类 类和对象的使用(面向对象思想落地的实现): 1.创建类,设计类的成员 2.创建类的对象 3.通过"对象.属性"或"对象.方法"调用对象的结构 如果创建了一个类的多

  • Java面向对象基础教学(二)

    目录 1.使用访问修饰符: 2.static关键字: 3.this关键字 总结 1.使用访问修饰符: 访问修饰符 同一个类中 同一个包中 子类中 所有类中 private √ -- -- -- default √ √ -- -- protected √ √ √ -- public √ √ √ √ 注释:private:私密的    default:默认值    protected:受保护的    public:公共的 访问控制级别:private→default→protected→public

  • Java面向对象之什么是异常

    基础概念 (1)异常:Java程序在运行时期发生的不正常情况. Java就按照面向对象的思想对不正常情况进行描述和对象的封装. (2)异常问题分类: (Throwable:定义对于问题共性的功能.) 1.Error:由系统底层发生的,jvn告诉使用者.不做针对性处理,直接修改代码. 2.Exception:发生并告诉使用者,可以进行针对性的处理. (3)异常的处理情况: 1.遇到问题不进行具体的处理,继续抛给调用者.就是在函数上通过throws关键字声明异常.目的是让调用者可以进行处理. 2.针

  • Java面向对象基础教学(一)

    目录 1.如何定义类 2.如何定义属性 3.如何定义普通方法 4.如何创建对象 5.如何定义构造方法 6.什么是可变参数,怎么用? 总结 1.如何定义类 语法: 访问修饰符 class 类名{ } public class skills{ } 2.如何定义属性 语法: 属性写在类里面 数据类型  变量名; public class hero{ String sex; String name; } 3.如何定义普通方法 语法: 访问修饰符 返回值 方法名(参数){ } public void at

  • 新手初学Java面向对象

    目录 java面向对象 知识点 总结 java面向对象 面向对象[Java语言的核心机制,最重要的内容,Java语言的特色] * 面向过程和面向对象的区别 - 面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路] * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低. * 缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的 方式导致软件元素之间的"耦合度"非常高,只要其中一环出问题,整个系统受到影响, 导致最终的软件"

  • 一篇文章带你入门java面向对象

    目录 一.继承 示例: 二.重载 三.接口 1.接口与类相似点: 2.接口与类的区别: 3.语法 四.枚举 1.定义 2.迭代枚举元素 3.在 switch 中使用枚举类 总结 一.继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 本章就以人.学生.老师作为例子.学生和老师都继承人这个对象,都有人的特征和行为,人就是父类,老师和学生就是子类 示例: 人类: package com.zhouzy.base.t7;

  • 一篇文章带你入门Java修饰符

    目录 定义 分类 访问控制修饰符 非访问控制修饰符 修饰符的使用说明 修饰类 修饰方法 访问控制修饰符 非访问控制修饰符 修饰变量 总结 定义 Java修饰符:修饰符用来定义类.方法或者变量,通常放在语句的最前端. 分类 主要分为2类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符 可以使用访问控制符来保护对类.变量.方法和构造方法的访问.分为以下4中权限:private,default,protected,public. 权限说明: 修饰符 当前类 同包 子类(不同包) 不同包(其他类)

  • 一篇文章带你入门Java字面量和常量

    目录 引言 概念 字面量 字面量的分类 常量 总结 引言 ♀ 小AD:哥,前两天我没有闪现到刺客脸上了吧 ♂ 明世隐:在这方面做的有进步. ♀ 小AD:明哥教的好,通过学习Java关键字,游戏水平也得到了提升,一举两得,舒服. ♂ 明世隐:可是你看到残血还是上头啊,是了多少次,你说? ♀ 小AD:5.6次吧 ♂ 明世隐:岂止5.6,起码10次. ♀ 小AD:这不是看到200金币,经不住诱惑吗 ♂ 明世隐:关爱残血,你学哪里去了,游戏中就不能多一些人间的关爱吗?你就不能关爱一下放暑假的小弟弟小妹妹

  • 一篇文章带你入门Java继承

    目录 Java中继承 什么是继承: 为什么要用继承: 学习总结: 继承关键字:extends 总结 Java中继承 什么是继承: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 为什么要用继承: 可以去掉重复代码,方便后期维护 举个列子,大家应该都玩过英雄联盟,每个英雄都是一个类,如果说不用继承的话每次都要重复定义每个英雄的成员属性,如下图我举了一个MF,一个EZ的列子 public class MissFortu

  • 一篇文章带你入门Java封装

    目录 什么是封装 如何实现封装 代码展示 构造方法 注意点: 代码展示 总结 封装的优点 什么是封装 Java中的封装是将数据(变量)和作用于数据(方法)的代码作为一个单元包装在一起的机制. 在封装中,类的变量将从其他类隐藏,并且只能通过当前类的方法访问. 如何实现封装 可以分为两步: 第一步:将类的变量声明为private. 第二步:提供公共set和get方法来修改和获取变量的值. 代码展示 public class User { private String name; private in

  • 一篇文章带你入门Java基本概念

    目录 Java基本概念 一.JRE(Java运行时环境) 二.JDK(Java开发工具) 三.Java源代码文件(.class) 四.Java字节码文件(.java) 五.Java虚拟机(JVM) 六.跨平台运行 七.JDK与JRE.JVM的关系? 八.几个结论 总结 Java基本概念 JDK包含了不少Java开发相关命令.如,javac.java.javap.javaw.javadoc.虽然现在的Java开发都使用IDE完成,基本上不会直接使用这些命令.但是理解这些命令的用法,可以让我们更加扎

  • 一篇文章带你入门Java运算符

    目录 算数运算符(Arithmetic operator) 关系运算符(Relational operator) 逻辑运算符(Logical operator) 赋值运算符(Assignment Operators) 三元运算符(Ternary operator) 运算符优先级 标识符的命名规则和规范 关键字定义和特点 保留字 总结 运算符时一种特殊的符号,用以表示数据的运算,赋值和比较等. 算数运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 三元运算符 算数运算符(Arithmetic

  • 一篇文章带你入门java泛型

    目录 一.什么是泛型 二.语法 三.示例 1.简单示例 2.返回最大值-支持各种数据类型 3.泛型类 4.类型通配符 总结 一.什么是泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 二.语法 你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数.根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用. 下面是定

  • 一篇文章带你入门java多线程

    目录 一.描述 二.一个线程的生命周期 三.线程的优先级 四.创建线程 五.示例 1.Runnable接口 2.继承Thread 3.Callable 和 Future 创建线程 4.测试 总结 一.描述 Java 给多线程编程提供了内置的支持. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销. 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个

  • 一篇文章带你入门java集合

    目录 一.简介 1.java集合框架图 2.集合框架体系 3.Set和List的区别 二.ArrayList 1.定义 2.用实例了解ArrayList 三.LinkedList 1.语法 2.示例 四.HashSet 1.定义 2.语法 3.示例 五.HashMap 1.定义 2.语法 3.示例 Java HashMap 方法 六.Iterator(迭代器) 1.定义 2.示例 七.List和数组互转 总结 一.简介 1.java集合框架图 从上面的集合框架图可以看到,Java 集合框架主要包

随机推荐