`
ye_haiqiang
  • 浏览: 88802 次
  • 性别: 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 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...

    类对象和类指针

    在编程领域,尤其是在C++这样的面向对象编程语言中,类对象和类指针是两种不同的方式来访问和操作类的成员。本篇文章将详细探讨这两种方法,并通过一个简单的小例子来阐述它们的区别和应用场景。 首先,我们要理解...

    java对象和类对象和类

    在Java编程语言中,"对象"、"类对象"和"类"是核心概念,它们构成了面向对象编程的基础。理解这些概念对于任何Java开发者来说都至关重要。 首先,我们来谈谈"对象"。在Java中,对象是类的实例。它是程序运行时的数据...

    Java:Java 对象和类

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

    accp5.0java第六章 对象和类

    在Java编程语言中,对象和类是核心概念,它们构成了面向对象编程(OOP)的基础。在"accp5.0 Java第六章 对象和类"这个章节中,我们将深入探讨这两个关键概念以及它们在实际编程中的应用。 一、对象 1. **对象的...

    Java语言程序设计ppt第八章对象和类

    4. **定义类和创建对象**:通过关键字`class`来定义一个类,然后使用`new`关键字和构造方法来创建类的对象。例如,`Circle c = new Circle(radius);`创建了一个新的Circle对象,并通过构造方法传入半径值。 5. **...

    JAVA对象和类(上).mp4

    JAVA对象和类(上).mp4

    python的面对对象和类类型

    python的面对对象和类类型

    对象和类实验报告.doc

    对象和类实验报告

    面向对象和类

    JAVA第三章面向对象和类,详细的书,内容来自程序设计基础和实践>>

    java对象和类

    1面向对象程序设计概述 2类和对象 4静态域和静态方法 5方法参数 6对象构造 7包

    Java程序设计对象和类PPT教案学习.pptx

    Java程序设计对象和类PPT教案学习.pptx

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

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

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

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

    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" 面向对象程序设计是一种程序设计方法,它强调将问题域中的对象抽象化,并将其作为设计的基本单元。面向对象程序设计方法的主要特点是将问题域中的对象抽象化,并将其作为...

    类-对象和接口优秀文档.ppt

    面向对象编程(Object-Oriented Programming, OOP)是基于对象和类的编程范式,它强调将数据结构和算法结合为一个整体,以更自然地反映现实世界的问题。早期的程序设计方法,如结构化编程,将算法和数据结构视为独立...

    java面向对象编程pdf

    Java面向对象编程PDF ...Java面向对象编程的基础知识包括对象和类的概念、抽象的数据类型、类的成员、类的组成和类的转化过程。这些知识点是Java编程的基础,理解这些概念对于学习Java编程非常重要。

Global site tag (gtag.js) - Google Analytics