`
ye_haiqiang
  • 浏览: 88095 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论
阅读更多

一、对象和类的区别

java的类通常通过class关键字进行定义,它代表了一种抽象的集合,例如,学生类,动物类等,在它的里面可以定义各种属性和方法,它们代表了每个类实例的特定的数据和动作。java虚拟机对类只加载一次,对它的静态成员也只加载一次。

对象,指的是某个特定抽象的实例,它属于某一种类型,也就是对象是通过类来创建的。它必须从属于某一个类,通过new关键字进行创建,它代表一个特定类型的实例,对象可以被多次创建。

简而言之,类是一种抽象,而对象是类的实现。

二、继承与重用代码

java采用的是单继承机制,使用extend关键字。通过继承以后,子类就拥有了父类所有成员。从而达到代码重用的目的。在继承过程中,可以通过方法的覆盖来实现多态,让子类拥有自己独特的方法实现方式。

例子:

类如如下:

 

 

class Animal
{
	//呼吸
	void breath()
	{
		System.out.println("Breath.....");
	}
	//叫
	void cry()
	{
		System.out.println("Cry.....");
	}

}
//猫类继承动物类
class Cat extends Animal
{
	//重写cry方法
	void cry()
	{
		System.out.println("喵喵....");
	}
}
//测试类
class  ExtendTest
{
	public static void main(String[] args) 
	{
		//创建动物对象
		Animal animal=new Animal();
		//创建猫对象
		Cat cat=new Cat();
		//调用动物的呼吸方法
		animal.breath();
		//调用动物的叫方法
		animal.cry();
		//调用猫的呼吸方法
		cat.breath();
		//调用猫的叫方法
		cat.cry();
	}
}

 

 

 

运行结果:

 

三、多态

“多态”一词按照字面上的理解就是:“多种形式,多种状态”。它的本质是发送消息给某个对象,让该对象自行决定响应何种行为,通过将子类对象引用赋值给超类对象引用变量实现动态方法调用。

 

例子如下:

 

类图如下:

 

class Man
{
	int eyes=2;
	String getEyesColor()
	{
		return null;//返回眼睛的颜色
	}
}
class AsiaMan extends Man
{
	//重写(覆盖)
	String getEyesColor()
	{
		return "black";//返回黑色
	}
}
class EuroMan extends Man
{
	//重写(覆盖)
	String getEyesColor()
	{
		return "blue";//返回蓝色
	}
}
class  PolymorphismTest
{
	public static void main(String[] args) 
	{
		//创建一个亚洲人,转换成Man类型
		Man asiaMan=new AsiaMan();
		//创建一个欧洲人,转换成Man类型
		Man euroMan=new EuroMan();
		System.out.println("Asia Men eyes' color is "+asiaMan.getEyesColor());
		System.out.println("Euro Men eyes' color is "+euroMan.getEyesColor());
	}
}

 

 

运行结果:

 

 四、静态成员

类的静态成员是通过static关键字修饰成员,主要包括:静态成员变量、静态方法和静态代码块,它们具有以下一些特点:

 

1)在类加载的时候,就进行创建和初始化或执行代码。

 

2)它们对于一个类来说,都只有一份。

 

3)类的所有实例都可以访问到它们

 

例如:

class StaticTest 
{
	//静态成员变量
	static int a=1;
	//静态方法
	static void testMethod()
	{
		System.out.println("test method....");
	}
	//静态代码块
	static
	{
		System.out.println("execute static codes...");
	}
	public static void main(String[] args) 
	{
		System.out.println("a="+a);//打印静态变量的值
		StaticTest.testMethod();//通过类名直接访问
	}
}

 

运行结果:

 

 

 

 

五、派生类的构造方法为父类传递参数

在java中,使用super()为父类的构造方法提供参数,通过参数的数目和类型来决定调用哪个构造方法。如果调用的是父类的默认的无参数构造方法,则可以不必显示地使用super()

 

例如:

 

//父类
class Base
{
	//成员变量a
	int a;
	//有参数的构造方法
	Base(int a)
	{
		this.a=a;
	}
}
//儿子
class Child extends Base
{
	//无参数的构造方法
	Child()
	{
		//为父类传入一个100的参数
		super(100);
	}
	//有参数的构造方法
	Child(int a)
	{
		//为父类传入一个a参数
		super(a);
	}
}

/**
*new Child();==>无参数构造方法
*new Child(100);==>有参数构造方法
*/

 

 

六、接口和抽象类的区别

抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在java语言中,抽象类表示一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

 

例如:

类图:

 

abstract class Fruit//水果
{
	double weight;//重量
	double volume;//体积
	abstract String getTaste();//味道
}
//可包装接口
interface Packable
{
	void pack();
}
//可分瓣接口
interface Divisible
{
	void divisible();
}
class Apple extends Fruit implements Packable
{
	String getTaste()
	{
		return "甜";
	}
	public void pack()
	{
		System.out.println("包装苹果...");
	}
}
class Orange extends Fruit implements Packable,Divisible
{
	String getTaste()
	{
		return "酸";
	}
	public void pack()
	{
		System.out.println("包装橙子...");
	}
	public void divisible()
	{
		System.out.println("把橙子分瓣...");
	}
}
class  AbstractInterfaceTest
{
	public static void main(String[] args) 
	{
		Apple apple=new Apple();
		System.out.println("apple taste "+apple.getTaste());
		apple.pack();
		Orange orange=new Orange();
		System.out.println("==========================");
		System.out.println("orange taste "+orange.getTaste());
		orange.pack();
		orange.divisible();

	}
}

 

执行结果:

 

 

 

 每天一点点希望对大家有利~

分享到:
评论

相关推荐

    第七章Python对象和类习题及答案--中文

    Python 对象和类习题及答案中文 在本节中,我们将学习 Python 中的对象和类,并通过习题和答案来巩固相关知识点。 定义对象的类 在 Python 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...

    Java对象和类 最详细说明

    - **嵌套类和接口(Nested Class and Interface)**:类中可以包含其他的类或接口。 **声明一个类的基本语法**: ```java class ClassName { // 字段 // 方法 } ``` **实例变量**:在类内部、方法外部定义的...

    Java:Java 对象和类

    Java是一种面向对象编程语言,它的核心概念围绕着对象和类。在Java中,对象是类的具体实例,具有状态和行为。状态通常通过类中的属性(或称为成员变量)来表示,而行为则通过方法实现。 对象是类的一个具体存在,...

    Java程序设计课件:第7章 对象和类.ppt

    Java程序设计中的对象和类是面向对象编程的基础概念。对象是具有特定属性和行为的实体,它可以代表现实世界中的任何可识别实体,如人、物、事件等。对象的状态由一组数据域(或属性)来描述,而行为则通过一组方法来...

    JAVA对象和类(上).mp4

    JAVA对象和类(上).mp4

    python的面对对象和类类型

    python的面对对象和类类型

    对象和类实验报告.doc

    对象和类实验报告

    深入理解Java 对象和类

    【深入理解Java对象和类】 Java是一种面向对象的编程语言,其核心概念包括对象、类、多态、继承、封装、抽象以及实例、方法和消息解析。本文将着重探讨对象和类这两个基本概念。 **对象**是类的一个实例,具备状态...

    对象和类 C++ primer plus知识摘要

    对象和类 C++ primer plus知识摘要

    对象和类(下).mp4

    对象和类(下).mp4

    对象和类(上).mp4

    对象和类(上).mp4

    JAVA对象和类(下).mp4

    对象和类(下).mp4

    java学习之Java 对象和类

    Java是一种面向对象的编程语言,其核心理念是将现实世界中的实体...在实际编程中,类和对象的使用是构建复杂程序的基础。通过合理的设计和组织,可以创建出高效、可维护的代码,这也是Java作为面向对象语言的一大优势。

    易语言面向对象之绑定类成员

    在易语言中,面向对象编程(Object-Oriented Programming,OOP)是其核心特性之一,它允许开发者通过类、对象和继承等概念来组织和管理代码。本篇文章将深入探讨易语言中的面向对象以及如何绑定类成员。 面向对象...

    Java基础入门教程 第3章 类和对象(共40页).ppt

    【Java基础入门教程 第3章 类和对象】 Java是一种面向对象的编程语言,其核心概念是类和对象。本章主要介绍了面向对象编程的基础知识,包括数据类型、变量、数组、运算符和控制语句,并重点讲解了类和对象的概念。 ...

    Educoder题目:Java面向对象 - String类答案解析.md

    Educoder题目:Java面向对象 - String类答案解析

    Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...

    java元数据——CLass类

    Class对象的创建发生在类加载(java.lang.ClassLoader)的时候,JVM加载一个类的时候首先创建Class对象,然后创建这个类的每个实例的时候都使用这个Class对象。 Class对象的作用是: 1. JAVA 使用 Class 对象来...

    面向对象程序设计之类和对象实用全套PPT.ppt

    "面向对象程序设计之类和对象实用全套PPT" 面向对象程序设计是一种程序设计方法,它强调将问题域中的对象抽象化,并将其作为设计的基本单元。面向对象程序设计方法的主要特点是将问题域中的对象抽象化,并将其作为...

Global site tag (gtag.js) - Google Analytics