关于面向对象,主要说一下几点:
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这种数据类型的数据。
相关推荐
易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...
面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...
面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...
面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...
本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者构建高质量、可维护的软件系统。 在面向对象分析阶段,我们首先理解问题域,识别出关键实体和它们...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...
《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介 第一章 面向对象软件工程的范畴 第二章 ...
本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...
借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...
C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...
### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...
Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...
国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...
由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...