一、对象和类的区别
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 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...
- **嵌套类和接口(Nested Class and Interface)**:类中可以包含其他的类或接口。 **声明一个类的基本语法**: ```java class ClassName { // 字段 // 方法 } ``` **实例变量**:在类内部、方法外部定义的...
Java是一种面向对象编程语言,它的核心概念围绕着对象和类。在Java中,对象是类的具体实例,具有状态和行为。状态通常通过类中的属性(或称为成员变量)来表示,而行为则通过方法实现。 对象是类的一个具体存在,...
Java程序设计中的对象和类是面向对象编程的基础概念。对象是具有特定属性和行为的实体,它可以代表现实世界中的任何可识别实体,如人、物、事件等。对象的状态由一组数据域(或属性)来描述,而行为则通过一组方法来...
JAVA对象和类(上).mp4
python的面对对象和类类型
对象和类实验报告
【深入理解Java对象和类】 Java是一种面向对象的编程语言,其核心概念包括对象、类、多态、继承、封装、抽象以及实例、方法和消息解析。本文将着重探讨对象和类这两个基本概念。 **对象**是类的一个实例,具备状态...
对象和类 C++ primer plus知识摘要
对象和类(下).mp4
对象和类(上).mp4
对象和类(下).mp4
Java是一种面向对象的编程语言,其核心理念是将现实世界中的实体...在实际编程中,类和对象的使用是构建复杂程序的基础。通过合理的设计和组织,可以创建出高效、可维护的代码,这也是Java作为面向对象语言的一大优势。
在易语言中,面向对象编程(Object-Oriented Programming,OOP)是其核心特性之一,它允许开发者通过类、对象和继承等概念来组织和管理代码。本篇文章将深入探讨易语言中的面向对象以及如何绑定类成员。 面向对象...
【Java基础入门教程 第3章 类和对象】 Java是一种面向对象的编程语言,其核心概念是类和对象。本章主要介绍了面向对象编程的基础知识,包括数据类型、变量、数组、运算符和控制语句,并重点讲解了类和对象的概念。 ...
Educoder题目:Java面向对象 - String类答案解析
本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...
Class对象的创建发生在类加载(java.lang.ClassLoader)的时候,JVM加载一个类的时候首先创建Class对象,然后创建这个类的每个实例的时候都使用这个Class对象。 Class对象的作用是: 1. JAVA 使用 Class 对象来...
"面向对象程序设计之类和对象实用全套PPT" 面向对象程序设计是一种程序设计方法,它强调将问题域中的对象抽象化,并将其作为设计的基本单元。面向对象程序设计方法的主要特点是将问题域中的对象抽象化,并将其作为...