关键词:
类和对象
学习本章用到的单词
class:类
object: 对象
return: 返回返还,返还值
programming:编程,程序设计
null:空,空值
initial:最初的,初始,初始值
type:类型,种类
oriented:面向,定向
对象
现实世界中客观存在的事物就称为对象,在Java的世界中,"万物皆对象".
身边的对象
现实世界中客观存在的任何事物都可以被看做对象.对象可以是有形的,如一辆汽车;他可以是无形的,如一项计划.因此对象无处不在.
Java是一种面向对象的编程语言.(object oriented programmin Language, OOPL).因此我们要学会用面向对象的思想考虑问题和编写程序,在面向对象中,对象时用来描述客观事物的一个实体.
每一个对象都有自己的特征,包括静态特征和动态特征.静态特征是可以用某些数据来描述的特征,如人的姓名,年龄等.动态特征是对象所表现的行为或对象所具有的功能,如购物,收款等.
不同对象的静态特征和行为对照
对象 | 静态特征 | 静态特征的值 | 动态特征 |
"顾客"对象 张浩 |
姓名 年龄 体重 |
张浩 20 60千克 |
购买商品 |
"收银员"对象 李明 |
员工号 姓名 部门 |
10001 李明 财务部 |
收款 打印账单 |
对象的属性和方法
在面向对象的编程思想中中,把对象的静态特征和动态特征分别称为对象的属性和方法,它们是构成对象的两个重要因素.其中属性是用来描述对象静态特征的一个数据项,该数据的值就是属性值
eg:
"顾客"对象有一个属性是姓名,属性值是张浩.而方法是用来描述对象动态特征(行为)的一个动作序列.
eg
"收银员"对象的行为有收款和打印账单,这些都是对象的方法.
在Java中对象用来描述客观事物的一个实体,由一组属性和方法构成.
封装
封装就是把一个事物包装起来,并尽可能隐藏内部细节.
对象的属性和方法是相辅相成,不可分割的.他们共同组成了实体对象.因此,对象具有封装性.
属性发动机 方向盘 ...... |
方法发动 加速 刹车 ...... |
类
类:将一些事物共同的属性和行为组织到一个单元中,就得到了类.
类定义了对象将会拥有的特征(属性)和行为(方法).
类的属性:对象所拥有的静态特征在类中表示时称为类的属性.
eg:
所有顾客都有姓名,因此姓名可以称为"顾客类"的属性,只是不同对象的这一属性值不同,
eg:
因此姓名可以称为"顾客类"的属性,只是不同对象的这一属性值不同,如顾客张三和顾客李四的姓名不同.
类的方法:对象执行的操作方法称为类的方法.例如所有顾客都有购物行为,因此购物就是顾客类的一个方法.
类和对象的关系
类和对象的关系就是抽象和具体的关系,类是多个对象进行综合抽象的结果, 是实体对象的概念模型,而一个对象是一个类的实例.
类是对象的类型
事实上,定义类就是抽取同类实体的共性自定义的一种数据类型.
eg:
"顾客"类. "人‘类, "动物 "类.
Java是面向对象的语言
在面向程序设计中,类是程序的基本单元.Java是完全面向对象的编程语言,,所有程序都是以类为组织单元的.
Java的类模板
类具有的属性和方法
语法:
public class <类名> {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
.....
属性3的类型 属性3;
定义方法部分
方法1;
方法2;
方法3;
......
方法n;
}
在Java中要创建一个类,需要使用一个class,一个类名,和一对大括号.
其中class要创建类的关键字.在class前有一个public,表示"公有"的意思.编写程序,要注意编码规范,不要漏写public.在class的后面要给定义的类命名,然后写上一对大括号,类的主体部分就写在{ }中.
类似于给变量命名,类的命名也要遵循一定的规则.
规则如下:
1.不能使用Java中的关键字.
2.不能包含任何嵌入的空格或点号 " , ",以及除下划线"_",字符"$"外的特殊字符.
3.不能以数字开头.
规范:
类名 通常由多个单词组成,每个单词的首字母大写.
另外,类名应该简洁而有意义,尽量使用完整单词,,避免使用缩写词,除非该缩写词已被广泛使用 ,如HTML.HTTP.IP等.
如何定义类
类定义了对象将拥有的属性和方法,定义类为3个步骤:
1.定义类
通过定义类名,得到程序最外层的框架.
语法:
public class 类名 {
}
2,编写类的属性
通过在类的主体中定义变量来描述类所具有的静态特征(属性).这些变量称为类的成员变量.
3.编写类的方法
通过在类中定义方法来描述类所具有的行为,这些方法称为类的成员方法.
eg:
School类
|
属性: 中心名称 教室数目 机房数目
|
方法: 展示中心信息 |
eg:
public class School {
String schoolName;//学校名称
int classNumber;//教室数目
int labNumber;//机房数目
//定义北大青鸟中心的方法
public void showCenter( ){//School类的showCenter( )方法
System.out.println( schoolName+"培训中心 "+"配备:"+classNumber+"教室"+labNumber+" 机");
}
}
showCenter( )方法写法如下:
public String showCenter( ) {
//方法体
}
编写showCenter( )方法时,大家只需要在方法体部分写出自己要实现的功能即可,showCenter是方法名,在Java中,一个简单方法的框架如下:
语法:
访问修饰符 返回值类型 方法名( ) {
//方法体
}
访问修饰符 :限制了访问该方法的范围,如public,还有其他的访问的修饰符 ,
返回值类型:是方法执行后的返回结果的类型,这个类型可以是基本类型,或者是引用类型,也可以没有返回值,此时必须使用void来描述.
方法名:一般使用一个有意义的名字描述该方法的作用,其命名应该符合标识符的命名规则.
说明:
Camel(骆驼)命名法和Pascal(帕斯卡)命名法
骆驼命名法:方法或变量名的第一个单词的首字母小写,后面每个单词的首字母大写,如shouCenter,userName等.
帕斯卡命名法:
每一个单词的首字母都大写,如类名School等.
在Java中,定义类的属性和方法使用骆驼命名法,定义类使用帕斯卡命名法.
如何创建和使用对象
类的作用就是创建对象
由类生成对象,称为类的实例化过程.一个实例也就是一个对象,一个类可以生成多个对象.
创建对象的语法:
类名 对象名 = new 类名( );
在创建类的对象时,需要使用Java的new关键字.例如,创建School类的一个对象.
School center = new School( );
center 对象的类型就是School类型.使用new 创建对象时,并没有给它的数据成员赋一个特定的值.考虑到每个对象的属性值可能是 不一样的.所以创建对象后再给它的数据成员赋值.
在Java中,要引用对象的属性和方法,需要使用" . "操作符.其中,对象名再圆点的左边 ,属性或方法的名称再圆点的右边
语法如下:
对象名 . 属性 //引用对象的属性
对象名 . 方法名 //引用对象的方法
eg:创建School类的对象center后,就可以给对象的属性赋值或调用方法
代码:
center.name = " 北京中心"; //给name 属性赋值
center.showCenter( ); //调用showCenter( )方法
实例:
public class InitialSchool{
public static void main(String [] args){
School center = new School( );
System.out.pringln("***初始化成员变量前***");
center.showCenter( );
center.schoolName = "北京远航";//给shcoolName属性赋值
center.classNumber = “” 10“”;//给classNumber属性赋值
center.labNumber = “”10“”;//给labNumber属性赋值
System.out.pringln(" ***初始化成员变量前***");
center.showCenter( );
}
}
main()方法是程序的入口,可以出现在任何一个类中,但是要保证一个Java类中只有一个main()方法。因此,我们可以将main()方法写在School类中。但这里,我们将main()方法放在 InitialSchool类中,目的是使不同的类实现不同的功能。
以上有三点值得注意:
1.使用关键字new创建类的对象“”center“”。
2.使用“”.”操作符访问类的属性。
3.使用“”.“”操作符访问类的方法。
因为定义类时,如果没有给属性赋初始值,Java会给一个默认值
eg:
int 默认值为:0
double默认值为:0.0
char默认值为:‘u0000‘
boolean默认值为:false
String默认值为:null
面向对象的优点
1.与人类的思维习惯一致。
2.隐藏信息,提高了程序的可维护性和安全性。
3.提高了程序的可重用性。一个类可以创建多个对象实例,增加了重用性
本章总结
>对象是用来描述客观事物的一个实体,由一组属性和方法构成。
>类定义了对象将会拥有的特征(属性)和行为(方法)。
>类和对象的关系是抽象和具体的关系。类是对象的类型,对象是类的实例。
>对象的属性和方法被共同封装在类中,相辅相成,不可分割。
》面向对象程序设计的优点如下:
1.与人类的思维习惯一致。
2,隐藏信息,提高了程序的可维护性和安全性。
3.提高了程序的可重用性。
》使用类的步骤如下:
1定义类:使用关键字class。
2.创建类的对象:使用关键字new。
3.使用类的属性和方法:使用““,””操作符。
.
读书笔记-js高级程序设计-第十一章dom扩展
对DOM的两个主要的扩展SelectorsAPIHTML5 ElementTraversal元素遍历规范querySelectorvarbody=document.querySelector("body");varmyDiv=document.querySelector("#myDiv");取得id为myDiv的元素varselected=document.querySele 查看详情
算法导论笔记——第十~十一章数据结构散列
第十章基本数据结构栈:可由数组表示队列:可由数组表示指针和对象:可由多数组表示。可用栈表示freelist有根数: 二叉树:左右孩子 分支无限制:左孩子右兄弟表示法 第十一章散列表数组:为每个元素保留一个... 查看详情
《java编程思想》学习笔记——第十一章持有对象
JAVA容器类类库的用途是"保存对象",并将其划分为两个不同的概念: 1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能用重复元... 查看详情
o'reill的svg精髓(第二版)学习笔记——第十一章
第十一章:滤镜11.1滤镜的工作原理当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上;在某一时刻,阅读器程序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上。例如我们用SVG的<filt... 查看详情
[学习笔记—objective-c]《objective-c-基础教程第2版》第十一章属性
11.1使用属性值@propertyfloatrainHandling;//表明此类具有float类型的属性,其名称为rainHandling注意:属性的名称不必与实例变量名称同样。@synthesizerainHandling;//表示创建了该属性的訪问代码注意:使用属性后,能够不声明实例变量。编... 查看详情
第十一章
因为是手机上传,有些图没有上传好,晚上回去重新弄。 查看详情
第十一章网络编程
--------------------------------------------------------Sun11Feb13:30:10GMT2018--------------------------------------------------------第十一章网络编程11.1Theclient-ServerprogrammingModelThefundamentaloperati 查看详情
第十一章
一.分组查询 1.语法 SELECT...FROM...GROUPBY... --分组查询Groupby selectCOUNT(*)as学生人数,GradeIdas年级编号fromStudentgroupbyGradeId&n 查看详情
高数(a)下第十一章(持续更新)
11.1 11.2 查看详情
第十一章linq
DataLibusingSystem;usingSystem.Collections.Generic;namespaceWrox.ProCSharp.LINQ{[Serializable]publicclassTeam{publicTeam(stringname,paramsint[]years){this.Name=name;this.Years=newList<int>(years 查看详情
html第十一章总结
#第十一章总结:本章的标题为:layoutandpositioningArrangingElement##前言:这一章节,通过已经知道的boxmodel的概念,进行讲述关于layout的知识,并且通过这些知识进行创造专业的设计和multicolumnlayouts.##谈谈Flow###对于blockelement*对blockeleme... 查看详情
第十一章多元线性回归与相关分析
第十一章线程
第十一章线程11.3线程标识每个线程也有一个线程ID,线程ID只有在它所属的进程上下文中才有意义。/* 比较两个线程ID,相等返回非0数值,否则返回0*/#include<pthread.h>intpthread_equal(pthread_ttid1,pthread_ttid2); /* 获得自身... 查看详情
第十一章
(1)1.万物皆对象:(地球上有什么?我们会不自觉的将地球上的事物归为具体类别) 2.对象:顾客 , 收银员; 官方定义:用来... 查看详情
第十一章习题答案
第十一章练习题答案?1.如何把/etc/passwd中用户uid大于500的行给打印出来?awk-f‘:‘‘$3>500‘/etc/passwd?2.awk中nr,nf两个变量表示什么含义awk-f‘:‘‘{print$nr}‘/etc/passwd会打印出什么结果出来?nr表示行数,nf表示一共有多少段?awk-f‘:... 查看详情
“全栈2019”java第十一章:标识符
...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第十一章:标识符下一章“全栈2019”Java第十二章:变量学习小组加入同步学习小组,共同交流与进步。方式一:关注头条号Gorhaf,私信“Java学习小组”。方式二:关注公... 查看详情
第十一章:dom扩展
DOM扩展选择符APIquerySelector方法querySelectorAll方法matchesSelector方法元素遍历HTML5与类相关的补充getElementsByClassName方法classList属性焦点管理HTMLDocument的变化readyState属性兼容模式head属性字符集属性自定义数据属性插入标记innerHTML属性ou... 查看详情
第十一章
一、理解什么是类和对象万事万物皆对象 1、属性——对象具有的特征(特点) 2、方法——对象可执行的操作(能干什么事) 3、对象的定义:是一个客观存在的,看的见或摸得着的实体,... 查看详情