一、对象和类的区别
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 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...
在编程领域,尤其是在C++这样的面向对象编程语言中,类对象和类指针是两种不同的方式来访问和操作类的成员。本篇文章将详细探讨这两种方法,并通过一个简单的小例子来阐述它们的区别和应用场景。 首先,我们要理解...
在Java编程语言中,"对象"、"类对象"和"类"是核心概念,它们构成了面向对象编程的基础。理解这些概念对于任何Java开发者来说都至关重要。 首先,我们来谈谈"对象"。在Java中,对象是类的实例。它是程序运行时的数据...
Java是一种面向对象编程语言,它的核心概念围绕着对象和类。在Java中,对象是类的具体实例,具有状态和行为。状态通常通过类中的属性(或称为成员变量)来表示,而行为则通过方法实现。 对象是类的一个具体存在,...
在Java编程语言中,对象和类是核心概念,它们构成了面向对象编程(OOP)的基础。在"accp5.0 Java第六章 对象和类"这个章节中,我们将深入探讨这两个关键概念以及它们在实际编程中的应用。 一、对象 1. **对象的...
4. **定义类和创建对象**:通过关键字`class`来定义一个类,然后使用`new`关键字和构造方法来创建类的对象。例如,`Circle c = new Circle(radius);`创建了一个新的Circle对象,并通过构造方法传入半径值。 5. **...
JAVA对象和类(上).mp4
python的面对对象和类类型
对象和类实验报告
JAVA第三章面向对象和类,详细的书,内容来自程序设计基础和实践>>
1面向对象程序设计概述 2类和对象 4静态域和静态方法 5方法参数 6对象构造 7包
Java程序设计对象和类PPT教案学习.pptx
Java程序设计课件:第7章 对象和类.ppt
在易语言中,面向对象编程(Object-Oriented Programming,OOP)是其核心特性之一,它允许开发者通过类、对象和继承等概念来组织和管理代码。本篇文章将深入探讨易语言中的面向对象以及如何绑定类成员。 面向对象...
Educoder题目:Java面向对象 - String类答案解析
本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...
Class对象的创建发生在类加载(java.lang.ClassLoader)的时候,JVM加载一个类的时候首先创建Class对象,然后创建这个类的每个实例的时候都使用这个Class对象。 Class对象的作用是: 1. JAVA 使用 Class 对象来...
"面向对象程序设计之类和对象实用全套PPT" 面向对象程序设计是一种程序设计方法,它强调将问题域中的对象抽象化,并将其作为设计的基本单元。面向对象程序设计方法的主要特点是将问题域中的对象抽象化,并将其作为...
面向对象编程(Object-Oriented Programming, OOP)是基于对象和类的编程范式,它强调将数据结构和算法结合为一个整体,以更自然地反映现实世界的问题。早期的程序设计方法,如结构化编程,将算法和数据结构视为独立...
Java面向对象编程PDF ...Java面向对象编程的基础知识包括对象和类的概念、抽象的数据类型、类的成员、类的组成和类的转化过程。这些知识点是Java编程的基础,理解这些概念对于学习Java编程非常重要。