`
百卉含英
  • 浏览: 26818 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

面向对象

阅读更多

    关于面向对象,主要说一下几点:

        1、类和对象

        2、方法:方法的传值;方法的返回值以及方法的调用

        3、封装

        4、实例变量和局部变量(不单独讲解,分别在类和方法部分讲解)

        5、空指针异常

        6、对象数组

-----------------------------------------------------------------------

    1、类和对象

        类是对象的抽象描述;对象是类的具体表现。

        类,就可以理解为是一个种类。比如:狗,桌子,飞机都属于类;一个类是把它拥有的对象的特征描述出来。

         对象,就是某一个类中的一个具体的实物,比如:tom家的那只狗,就是狗这个类中的一个对象;河南理工大学1101教室的讲桌就是桌子这个类中的一个对象。

        一个对象只属于一个类,而一个类可以有多个对象。

        类的组成:

            1)属性(实例变量):指对象具有的特征(一般为名词)。

            2)方法:该类的对象应该具备的动作行为(一般为动词)。

注:1)类中只能包含实例变量和方法,只有在方法中才能放相关的执行某种功能的代码,这也是java的面向对象的原因,如果之前学的是面向过程的语言,在这里要注意思维的转变。

     2)类中声明的变量是实例变量,实例变量在不赋值的情况下是有默认值的。

            String 类型的默认值为null;

            int类型的默认值为0;

            float类型的默认值为0.0f;

            boolean类型的默认值为false; 

 

以下是一个例子,定义了一个名字为Dog的类:

        public class Dog{

            //三个实例变量,狗的名字、年龄和毛色

            String name;

            int age;

            String color;

 

            //两个方法,狗可以跑,可以叫的方法

            public void run(){

                //代码

            }

            public void bark(){

                //代码

            }

        }

 

以下是一个测试类,里面定义了一个对象,用于测试上面的Dog类:

        public class Tset{

            public static void main(String[] args){

                Dog myDog = new Dog();//创建Dog类的对象(内存的分配,变量名myDog在栈内存中,它指向堆内存的一块空间,用于存储myDog的信息)

                

                //调用类中的实例变量

                myDog.name ="旺财";

                myDog.age = 2;

                myDog.color ="白色";

 

                //调用类中的方法

                myDog.run();

                myDog.brak();

            }

}

注:1)以上定义了两个类,一个Dog类,一个用于测试的Test类,一般情况下,只有测试的类中才有main方法,而被测试的类中是没有main方法的。

      2)对象是通过“.”使用类定义的属性和方法的,eg:myDog.run();在main方法中当代码执行到这一句时,就会转到Dog类中去执行这个run()方法,执行完再返回main方法,接着执行myDog.run()以下的语句。

 

    2、方法

        创建方法的一个宗旨:把功能相同的代码封装在一个方法中;

        格式:访问修饰符 返回值 方法名(参数列表)

        方法的传值:

             如果定义类的方法有参数列表在调用这个方法的时候,也要传入相同类型的参数(注意参数的数量、类型和顺序,与参数的名字没有内在的联系)。eg:

public class Pc {
	/**
	 * 给出歌曲的名字,完成听歌功能
	 */
	public void play(String msg){
		System.out.println("歌曲 "+msg+"正在播放");
	}
	
	public void chat(String name, String content){
		System.out.println(name+"正在说"+content);	
	}
}
public class Test {
	public static void main(String[] args) {
		
		Pc p = new Pc();
		p.chat("lily", "hello");
		p.play("奥斯汀的诡计");
         }
}

注:1)在内部调用中,各方法的定义没有先后顺序。

      2) 在方法内部也可以定义变量,这里的变量叫做局部变量,局部变量没有默认值,在没有被赋值的时候使用,会引发异常出现。

 

     3、封装(JavaBean)

        面向对象的三个特征:封装、继承和多态;

        封装的原因:1)有些数据是很关键很机密的,不想随便被使用,被改变,被访问;2)内部的方法或者变量对于外部使用者没有作用。

        封装的基本原则: 1)将实例变量标记为私有的(private); 2)提供公有的(public)的setter和getter方法用来控制实例变量的存取操作。eg:

public class FengZhuang {
	private String name;
	private int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(age < 18){
			this.age = 18;
		}else{
			this.age = age;
		}
		
	}
	
}

public class Test {
	public static void main(String[] args) {
		
		FengZhuang f = new FengZhuang();
		f.setName("lily");
		f.setAge(12);
		
		System.out.println(f.getName());
		System.out.println(f.getAge());
	}
}

 在以上的程序中,规定输入的年龄应不小于18岁,为防止外部使用时,恶意修改,故采用这种封装的方法,对于小于18的,强行设置为18;

 

    4)空指针异常

        当定义了一个类的对象,而此对象的值为null时,这个对象调用该类的属性或者方法时,就会出现这一种异常,该异常如图:



 对于这种异常的处理方法就是创建一个对象时,不能让其为null。

 

    6)对象数组

         在本文章第一部分讲类与对象时,我们定义了Dog类,再此依然借用那个类,假如我们已经有了那个Dog类,则可以定义这样一个数组:

            Dog[] dogs = new Dog[5];

            dogs[0] = new Dog();

            dogs[0].run();

        这里定义了一个数据类型为Dog的数组,可以最多可以存储5个Dog类型的对象。我们可以把它对比与String类型的数组理解,在此,Dog就是一种引用数据类型,数组中存储的元素都是Dog这种数据类型的数据。

    

  • 大小: 18.6 KB
分享到:
评论

相关推荐

    易语言面向对象编程 面向对象学习

    易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...

    plc面向对象编程架构与实现

    面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...

    面向对象葵花宝典-电子版

    面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...

    面向对象概要设计模板

    面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...

    实用面向对象软件工程教程

    本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者构建高质量、可维护的软件系统。 在面向对象分析阶段,我们首先理解问题域,识别出关键实体和它们...

    Python 3面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    面向对象分析与设计UML2.0(PDF)

    详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...

    软件工程面向对象分析实验报告

    面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    java面向对象编程源码

    本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...

    漫画面向对象编程 Java

    借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...

    C++面向对象程序设计教程——课件PPT

    C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    Matlab面向对象编程

    Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...

    面向对象分析与设计1

    国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...

    面向对象分析与设计.pdf

    由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...

Global site tag (gtag.js) - Google Analytics