文档库 最新最全的文档下载
当前位置:文档库 › java内置对象

java内置对象

java内置对象
java内置对象

1、Request对象

该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以

获取用户提交的信息。

当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的

字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象

即可。如下:

String textContent=request.getParameter("boy");

byte b[]=textContent.getBytes("ISO-8859-1");

textContent=new String(b);

Request常用的方法:

1.01 getParameter(String strTextName) 获取表单提交的信息。

String strName=request.getParameter("name");

1.02 getProtocol() 获取客户使用的协议。

String strProtocol=request.getProtocol();

1.03 getServletPath() 获取客户提交信息的页面。

String strServlet=request.getServletPath();

1.04 getMethod() 获取客户提交信息的方式,get|post。

String strMethod = request.getMethod();

1.05 getHeade() 获取HTTP头文件中的accept、accept-encoding和Host的值。

String strHeader = request.getHeader("accept");

1.06 getRermoteAddr() 获取客户的IP地址。

String strIP = request.getRemoteAddr();

1.07 getRemoteHost() 获取客户机的名称。

String clientName = request.getRemoteHost();

1.08 getServerName() 获取服务器名称。

String serverName = request.getServerName();

1.09 getServerPort() 获取服务器的端口号。

int serverPort = request.getServerPort();

1.10 getParameterNames() 获取客户端提交的所有参数的名字。

Enumeration enum = request.getParameterNames();

while(enum.hasMoreElements()){

String s=(String)enum.nextElement();

out.println(s);

}

2、Response对象

对客户的请求做出动态的响应,向客户端发送数据。

2.1 动态响应contentType属性

当一个用户访问一个JSP页面时,如果该页面用page指令设置页面的contentType属性时text/html,那么JSP引擎将按照这个属性值做出反应。如果要动态改变这换个属性值来响应客户,就需要使用Response对象的setContentType(String s)方法来改变contentType的属性值。

格式:response.setContentType(String s);

参数s可取text/html,application/x-msexcel,application/msword等。

2.2 Response重定向

在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用Response的sendRedirect(URL)方法实现客户的重定向。例如:

response.sendRedirect("index.jsp");

3、Session对象

(1)什么是Session对象

Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。

(2)Session对象的ID

当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie 中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。

(3)Session对象的常用方法

●public String getId():获取Session对象编号。

●public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。

●public Object getAttribute(String key):获取Session对象中含有关键字的对象。

●public Boolean isNew():判断是否是一个新的客户。

4、Application对象

(1)什么时Application对象

服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。

(2)Application对象的常用方法

●setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Application 对象中,并为添加的对象指定一个索引关键字。

●getAttribute(String key):获取Application对象中含有关键字的对象。

5、Out对象

Out对象时一个输出流,用来向客户端输出数据。Out对象用于各种数据的输出。其常用方法如下。

●out.print():输出各种类型数据。

●out.newLine():输出一个换行符。

●out.close():关闭流。

6、Cookie对象

(1)什么是Cookie

Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户电脑上保存信息并且随后再取回它。

举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie 文件的形式保存在每个用户的机器上。

如果用户使用IE浏览器访问Web,用户就会看到所有保存在自己硬盘上的Cookie。它们最常存放的地方是:C:\Windows\Cookies。Cookie是以“关键字key=值value”的格式来保存记录的。

(2)创建一个Cookie对象

调用Cookie对象的构造函数就可以创建Cookie对象。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。

例如:Cookie c = new Cookie("username","john");

(3)将Cookie对象传送到客户端

在JSP中,如果要将封装好的Cookie对象传送到客户端,可使用Response对象的addCookie()方法。

例如:response.addCookie(c)。

(4)读取保存到客户端的Cookie

使用Request对象的getCookie()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。

例如:

Cookie[] c = request.getCookies();

if(c != null)

for(int i = 0;i < c.length;i++){

if("username".equals(c.getName()))

out.println(c.getValue());

}

(5)设置Cookie对象的有效时间

调用Cookie对象的setMaxAge()方法便可以设置Cookie对象的有效时间,

例如:Cookie c = new Cookie("username","john");

c.setMaxAge(3600);

(6)Cookie应用

Cookie对象的典型应用时用来统计网站的访问人数。由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一ID。使用Cookie,网站可以完成一下工作。

●测定多少人访问过。

●测定访问者有多少是新用户(即第一次来访),多少是老用户。

●测定一个用户多久访问一次网站

当一个用户第一次访问时,网站在数据库中建立一个新的ID,并把ID通过Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,得到用户的来访次数。

7、Config对象

配置对象

页面对象。

PageContext对象

9、Exception对象

在处理异常的网页中可以直接访问exception隐式对象。

页面上下文对象

Jsp引入了一个名位PageContext的类,通过它可以访问页面的许多属性。

PageContext类拥有getRequest,getResponse,getOut,getSession等方法。

pageContext变量存储与当前页面相关联的PageContext对象的值。

补:

如果方法需要访问多个与页面相关的对象,

传递pageContext要比传递request,response,out等的独立引用更容易。(虽然两种方式都能达到同样的目的)

8、Page对象

JAVA类和对象的关系

1、JAVA中的参数传递问题(理解内存图) 基本类型:形式参数的改变对实际参数没有影响 引用类型:形式参数的改变直接影响实际参数 2、面向对象(理解,升就业班问说说什么是面向对象和思想特点) 1、面向对象(从三点回答) A面向过程是以函数为基础,完成各种操作,强调的是过程 B面向对象以对象为基础,完成各种操作,强调的是对象,结果 C面向对象是基于面向过程的 2、面向对象的思想特点: a)是一种更符合人们思考习惯的思想 b)把复杂的事情简单化 c)把我们从执行者变成了指挥者 3、举例: a)买电脑 b)洗衣做饭 c)旅游 d)把大象装进冰箱(伪代码体现) 4、事物是如何体现的 a)属性有哪些特征名词提取法 b)行为有哪些功能 5、类与对象的关系(掌握) 把事物转换成类 A:成员变量 定义在类中,方法外 B:成员方法 和以前的区别是去掉static 把这个说完还没有说道类与对象的概念,对不对 类:是相关的属性和行为的集合,集合就是一堆东西,是一个抽象的概念 对象:是某种事物的具体的存在,具体的表现形式 举例: 学生:类 对象:小明 6、案例 A学生类 B手机类 C汽车类(在这里画了内存图,有空看一下) 7、如何使用呢 a)创建对象 i.格式 a)类名变量= new 类名() b)使用成员变量和成员方法

i.对象名.成员变量 ii.对象名.成员方法 8、成员变量和局部变量的区别(理解) A 定义位置 成员变量:在类中方法外 局部变量,在类中方法中,或者方法上的形式参数 B 初始化的区别 成员变量:有默认的初始化值 局部变量:无 C 存储位置 成员变量:堆随着对象的存在而存在 局部变量:栈随着方法的存在而存在 9、匿名对象 a)概念:没有名字的对象 b)使用场景 i.当对象中的方法只掉用一次的情况下使用(一般不用,测试时使用)new Student().sayHello(); ii.匿名对象作为实际参数传递

JAVA基础-第3章类与对象-练习题-200910

第3章类与对象 一.选择题 1.下列不属于面向对象编程的特性是(D)。 A.封装性 B. 继承性 C. 多态性 D. 编译执行 2.下列类的声明中不合法的是(C)。 A. class People{…} B. class 植物{…} C. Class A{…} D. public class 共有类{… 3.下列方法的声明中不合法的是(C)。 A. float area(){…} B. void area(){…} C. double area(d){…} D. int area(int r){…} 4. 下列构造方法(构造器)的调用中正确的是(C)。 A. 按照一般的方法调用 B. 由用户直接调用 C. 只能通过new自动调用 D. 被系统调用 5.下列程序运行的结果是(A)。 class Book{ int width; int length; } public class A{ static void f(Book p){ p.width=20; p.length=40; } public static void main(String args[]){ Book b=new Book(); b.width=10; b.length=20; f(b); System.out.print(" "+b.width); System.out.print(" "+b.length); } } A. 20 40 B. 10 40 C. 10 20 D. 以上都不对 6.下列程序运行的结果是(D)。 public class A{ static void f(int y){ y=y+10; } public static void main(String args[]){ double x=10; f(x); System.out.println(x); } }

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d ) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法定义的变量:( b ) A 、一定在方法所有位置可见B、可能在方法的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:(d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c ) A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化 10、下面关于java中类的说法哪个是不正确的( c ) A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造方法是类中的特殊方法。 C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。 11、下列哪个类声明是正确的( d) A、public void H1{…} B 、public class Move(){…} C、public class void number{} D、public class Car{…} 12、下面的方法声明中,哪个是正确的(c) A、public class methodName(){} B、public void int methodName(){} C、public void methodName(){} D、public void methodName{} 13、下述哪些说法是不正确的?( b ) A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前必须初始化 14、下面对构造方法的描述不正确是( b)。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 A、void X(int k ){ i=k; } B、X(int k ){ i=k; } C、X(int m, int n ){ i=m; j=n; } D、X( ){i=0;j=0; } 19、有一个类A,以下为其构造方法的声明,其中正确的是

Java实验 类和对象

一、实验目的 掌握类和对象的定义,以及它们之间的关系 学习类中属性和方法的设计 会用UML图来对类进行描述 熟悉修饰符的作用,会用set/get方法对数据进行封装 二、实验要求 设计一个名为Rectangle的类表示矩形。这个类包括: ?两个名为width和height的私有double型数据域。用来表示宽、高。默认值为1.0。 ?创建默认矩形的无参构造方法。 ?一个创建width和height为指定值的矩形的构造方法。 ?一个名为GetArea()的公有方法返回矩形面积double ?一个静态的Compare方法,比较两个矩形的面积大小是否相等并返回一个布尔型结果,相等返回true,不等返回false; 画出UML 类图,实现Rectangle类,编写测试程序创建两个Rectangle类的对象。第一个对象的width为1,height为1;第一个对象的width为5,height为6。调用compare方法判断两个矩形是否相等并显示结果。 三、实验内容 1.使用Jude工具绘制UML图

2.编写代码实现类Rectangle package edu.neu.li.test; publicclass Rectangle { privatedouble width; privatedouble height; public Rectangle() { this.width = 1.0; this.height = 1.0; public Rectangle(double width, double height) { this.width = width; this.height = width; } publicdouble GetArea() { returnthis.width * this.height ; } publicstaticboolean Compare(Rectangle rec1, Rectangle rec2) { if(rec1.GetArea()==rec2.GetArea()) { returntrue; } returnfalse; } }

JAVA类与对象及数组习题及答案

JAV A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

java实验报告——对象和类

成绩: 面向对象原理与Java实践课程实验报告 实验1:对象和类 姓名 ____ 班级 ____ 学号 ____ 实验地点 ____ 实验时间 ____ 指导教师 ____

面向对象原理与Java实践课程实验报告 实验1:对象和类 一、实验目的: ●掌握类的定义及应用方法 ●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 ●体会Java在类和对象的设计中体现的面向对象的思想 二、实验要求: ●具备Java基础知识(教材第1、2章内容) ●掌握Java中对象和类的基本概念和应用方法(教材第3章内容) ●设计类时注意保证类的封装性 ●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档) 三、实验内容: 设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。 四、设计思路: 为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。 五、程序源代码: 下面是ZhuJieMian 主界面类 package pkg_TXL; import java.util.Scanner; public class ZhuJieMian { /** * * 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转 */ public static void main(String[] args) {

JAVA类与对象习题

JAVA类与对象习题 一、写出一个类People,并由该类做基类派生出子类Employee和Teacher。其中People 类具有name、age两个保护成员变量,分别为String类型、整型,且具有公有的getAge 成员函数,用于返回age变量的值。Employee类具有保护成员变量empno,Teacher类有teano和zc成员变量。 二、(1)创建Rectangle类,添加属性width、height; (2)在Rectangle类中添加两种方法计算矩形的周长和面积; (3)编程利用Rectangle输出一个矩形的周长和面积 三、(1)设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2 个)。获取和设置口令的方法,显示和修改用户名的方法等。编写应用程序测试User 类。 (2)定义一个student类,其中包括用户名、姓名、性别、出生年月等属行以及init()——初始化各属性、display()——显示各属性、modify()——修改姓名等方法。实现并测试这个类。 (3)从上题的student类中派生出Granduate(研究生)类,添加属性:专业subject、导师adviser。重载相应的成员方法。并测试这个类。 四、项目名称:Bank Account Management System 银行账户管理系统简称BAM 练习1:(面向对象基础语法) 写一个账户类(Account), 属性: id:账户号码长整数 password:账户密码 name:真实姓名 personId:身份证号码字符串类型 email:客户的电子邮箱 balance:账户余额 方法: deposit: 存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额

Java类与对象实验报告

实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下:

对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指 明该源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录: 1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。

java类与对象

5.2.1 编程实验1:基本类定义 本实验要求在封闭实验课中在教师指导下完成。 1. 实验目的 本实验旨在巩固学生对《Java语言程序设计》中第5章内容的掌握。在这个实验中学生将练习: ? 基本类的定义。 ? 使用自定义的基本类创建对象,并进行调用。 在强化练习中,学生将练习: ? 给基本类中增加属性 ? 在测试类中将增加的属性向控制台打印输出 2. 问题描述 编写一个类,描述学生的学号、姓名、成绩。学号用整型,成绩用浮点型,姓名用String类型。 编写一个测试类,输入学生的学号和成绩,并显示该学号的学生姓名,以及成绩。 3. 示例输出 4. 程序模板 class Student{ /* 此处创建三个属性。 */ } public class T1_Student{ public static void main(String[] args){ /* 先构造Student对象,然后分别为对象的属性赋值 最后打印输出对象的各个属性。 */ } } 5. 解答提示 1)在基本类的定义中描述学生类,学生的学号、成绩和姓名作为学生类的属性来描述。2)在测试类中写main方法,作为程序的入口进行运行,在main方法中创建学生对象,并

给对象的各个属性赋予具体值。 3)在测试类中用System.out.println()方法将属性的具体值输出到控制台,完成程序的输出结果要求。 6. 强化练习 1)给学生类添加性别属性,取值为boolean类型,用true表示男,用false表示女。 2)在测试类中输出学生的姓名、学号、成绩的同时,输出性别为:男或女。 5.2.2 编程实验2:构造方法 本实验要求在封闭实验课中在教师指导下完成。 1. 实验目的 本实验旨在巩固学生对《Java语言程序设计》中第5章内容的掌握。在这个实验中学生将练习: ? 定义多个基本类 ? 构造方法的定义 ? 构造方法的重载 在强化练习中,学生将练习: ? 构造方法的多个重载 ? 只通过指定长和宽来定制桌子。 2. 问题描述 编写一个类,描述桌子,包括以下几种属性:长、宽、高、颜色。并且使该类具有这样的功能:在定制桌子(即创建桌子对象时),就可以同时指定桌子的长宽高来订制。也可以同时指定长、宽、高、颜色来订制,也可单独指定桌子颜色来订制。 并编写一个测试类测试这几种定制方法。 5.2.3 编程实验3:访问器方法 本实验要求在封闭实验课中在教师指导下完成。 1. 实验目的 本实验旨在巩固学生对《Java语言程序设计》中第5章内容的掌握。在这个实验中学生将练习: ? 编写基本类,包括私有属性 ? 给基本类添加访问器方法,从而限制属性的读、写。 ? 测试类的编写,测试访问器方法对属性的读、写限制。 在强化练习中,学生将练习: ? 在基本类中添加私有属性。 ? 给该私有属性分别添加get和set访问器方法进行读、写。 2. 问题描述 编写一个类,描述银行账户,包括收入、支出和账户余额三种属性,同时包括对这三种

JAVA类与对象的创建

试验四 类和对象的创建 一.类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class类名[extends父类名]{ /*类体的内容*/ } 1.类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1)如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2.类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二.对象 1.对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2)为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1: 「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。 2.对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 例2:

java类和对象的例子

1.实现简易计算器,分别实现两个整数、三个浮点数的加法运算.(用JAVA中的类和对象) 源码如下: package days;//包名自己修改 import java.util.Scanner;//注意别忘记导入这个包名了public class NumSum { public int add(int num1,int num2){ return num1+num2; } public double add(double num1,double num2,double num3){ return num1+num2+num3; } public static void main(String[] args) { // TODO Auto-generated method stub NumSum nc=new NumSum(); NumSum nc1=new NumSum();

//调用2个整数相加的方法 //Scanner是用键盘手动输入数字。 System.out.println("请用键盘手动输入两个整数:"); System.out.println(nc.add(new Scanner(System.in) .nextInt(),new Scanner(System.in).nextInt())); //调用3个浮点数相加的方法 System.out.println("请用键盘手动输入三个浮点数:"); System.out.println(nc1.add(new Scanner(System .in).nextDouble(), new Scanner(System.in).nextDouble( ), new Scanner(System.in).nextDouble())); } }

java中类与类之间的关系

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。 类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association) (3)依赖(Dependency) (4)聚合(Aggregation) UML图与应用代码例子: 1.泛化(Generalization) [泛化] 表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。 [具体表现] 父类父类实例=new 子类() [UML图](图1.1) 图1.1Animal类与Tiger类,Dog类的泛化关系 [代码表现] 1.class Animal{} 2.class Tiger extends Animal{} 3.public class Test 4.{ 5. public void test() 6. { 7. Animal a=new Tiger(); 8. } 9.} 2.依赖(Dependency) [依赖] 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 [具体表现]

依赖关系表现在局部变量,方法的参数,以及对静态方法的调用 [现实例子] 比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作 [UML表现](图1.2) 图1.2 Person类与Screwdriver类的依赖关系 [代码表现] 1.public class Person{ 2. /** 拧螺丝 */ 3. public void screw(Screwdriver screwdriver){ 4. screwdriver.screw(); 5. } 6.} 3.关联(Association) [关联] 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 [具体表现] 关联关系是使用实例变量来实现 [现实例子] 比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司 [UML图] (图1.3) 图1.3 公司和员工的关联关系 [代码表现] 1.public class Company{ 2. private Employee employee;

Java的对象、类、方法和接口

1.1什么叫对象?什么叫方法?什么叫面向对象的程序设计? 面向过程的程序设计语言最重要的特点是按照解决问题的一个一个步骤来设计程序。这种语言是与解决相对比较简单的问题,当程序规模较大时,将显得纷繁复杂。 “对象”原来是描述自然界时使用的一个词语。比如,现在我正在写讲义,桌上的稿纸、手中的笔、案头的参考书、身后的电脑以及窗外的鸟都可以成为对象面向对象,就是将世界看成由许多彼此之间能联络的对象组成。 不少程序设计语言借用了对象这个词语作为一个专用名词,此时,对象也是具有状态和行为两个特征。在程序设计中,对象的状态时相对处于静态的,用变量来描述和表达;而对象的行为时动态的,他们通过“方法”来实现和完成,所以方法一定是实现对象行为的语句块。从功能上讲,方法和子程序、函数很相似。变量和方法是彼此有关、相互依赖的。当然,计算机都是用数据来表示对象的状态的,也是通过对数据的操作和修改来体现某个方法的功能的。 1.2 Java作为面向对象的程序设计语言有什么特点? Java是面向对象的程序设计语言,从面向对象这个角度看,体现了如下三个特点: a:封装性—面向对象的程序设计语言都是把数据和处理数据的操作结合在一起而构成一个整体,这就是对象。对象的使用者只能看到对象的外部特性,比如,其主要功能、如何调用等,而看不到内部如何实现这些功能。作为面向对象的程序设计语言,程序中的数据就是变量,程序对数据作处理则成为方法。变量和方法都被封装在对象中。所以,一个对象就是变量和方法的集合,其中变量表明这个对象的状态,方法实现这个对象所具有的行为,而且在程序中将这些变量和方法进行封装,使它们成为一个模块,再用一个名字来代表这个模块。这样,以后得更高层的程序设计中,就不必关心某个对象的行为到底是怎样实现的。可见,将对象封装就是为了使模块尽可能少地展现其内部细节,而只是以一种界面来面向外部。 对象的封装性减少了程序各部分之间的依赖,使程序的复杂性降低,而可靠性提高,并便于修改。 b:继承性—面向对象的程序设计中,对象是从类创建出来的,这一点即将在下面的解答中说明。在Java中,许多类组成层次化结构。一个类的上一层成为父类,而下一层成为子类。一个类可以继承其父类的变量和方法,而且这种集成具有传递性。就是说,一个类可以继承其上一层和其再上一层的变量和方法。这种可传递的继承性使得下层多个相似的对象可以共享上层类的数据和程序代码,而子类又可以再继承父类的基础上增添新的内容和功能。这种代码共享和代码可增添的继承特性使Java既灵活又方便提高效率。 c:通信相关性—一个对象往往涉及多个行为。体现在程序设计中,一个对象往往包含多个方法,每一个方法对应一个行为。所以,一个对象完成某个动作也就是程序执行相应的方法。于是,就涉及对象之间通过交互来实现复杂的行为,这叫对象之间的通信。 利用通信可以实现一个对象往另一个对象的信息传递。信息传递设计三个要素:一是信息接收对象;二是接收对象中用哪个方法完成指定的动作;三是比方

JAVA中类和对象的理解

JAVA中类和对象的理解 Java是面向对象的编程语言,哪么什么是对象?一句话,万物皆对象。只要你想得到,无论是实体,还是一些虚拟的事物,都可以称之为对象。换言之,Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。 先说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。 既然万物皆对象,我们编程,用编程语言来描述对象,不能为浩繁纷杂每一个对象进行相应描述,这就涉及到一个具体到抽象的过程了。其实我们的语言已经做到这一点了。我们平时说道的每一个名词,其实都是对现实世界中的一个个具体的“物体”(或称为“实体(Entity)”)相应的特征和行为抽象出来,并且将各种具有相同特征的“物体”分为一个个的“类(class)”,就是我们为每一类事物起的名字。比如:汽车、食物、狗、人这些词等等。 我们用一个具体的例子来进一步说明“类”和“对象”之间的联系与区别。以汽车为例,只要是汽车,都应该有以下一些“属性”:轮子、引擎、方向盘、刹车等等组件,可以通过一些“方法”来操作汽车,改变汽车的状态,如加速、转向、减速等,这些都是汽车的共性。具体到某辆汽车,它可能有80cm的轮子、40cm的方向盘、A6引擎,它是一个确定的实例。“汽车”这个名词就是“类”,一辆辆真实的汽车就是“汽车”这个类的实例化。 我们每天的生活、工作,无时无刻不在和“对象”打交道----衣服、食物、房子、汽车等。我们仔细想想,就会发现,当我们处理这些对象时,我们不会将这些对象的属性(对象所具有的特点)和操作分开。如我们进出“房间”时,我们不会将“房门”这个属性和“开门”这个操作分开,它们是联系在一起的。那么,面向对象编程思想力图使得程序和现实世界中的具体实体完全一致。这样,可以让程序员乃至非专业人员更好的理解程序。所以Java 语言还是很好阅读的。 类和对象是面向对象编程思想中的核心和基础。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。 前面说了,类可以看做是对象的抽象,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是: 1.数据:数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。 2.行为:行为就是这个对象可以完成的动作、操作等,是对象的动态特征。接上个例子,汽车可以启动,行驶,刹车等等,都是这辆汽车的动态特征。 通过这两方面的特征内容,基本上这个对象就可以描述清楚了。 Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为: 1.属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态) 2.方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作) Java中类的声明语法规范(即如何定义一个标准的Java类) 语法规则:

JAVA类与对象实验报告

《面向对象程序设计》实验报告 实验三、类与对象(1) 课程代码:1H10500学分:6 实验类型:实践型实验学时:4个学时 实验时间:2017.10.12 实验地点:5407 班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉 一、实验目的 (1)掌握类和对象 (2)理解封装 (3)会创建和使用对象 (4)会定义和使用类的方法 (5)理解变量作用域 二、实验内容及步骤 内容:定义学校类、教员类、学生类、游人类以及管理员类 步骤:方案的设计与分析(类结构图。。。。。。) 1、抽象出该类的共同属性特征 2、抽象出该类的共同方法行为 三、实验过程及结果 实验1代码: 学校类教员类学生类 class School{ String schoolName; int classNumber; int labNumber; public School() { schoolName="北京远航培训中心"; classNumber=10; labNumber=10; } class Teacher{ String teacherName; String teacherDirection; String teacherClass;

int teacheAge; public Teacher() { teacherName="王老师"; teacherDirection="计算机"; teacherClass="使用JAVA语言理解程序逻辑"; teacheAge=5; } class Student{ String studentName; String studentHobby; String studentClass; int studentAge; public Student() { studentName="张浩"; studentHobby="篮球"; studentClass="S1班"; studentAge=10; } 游人类: class Visitor { String name; int age; public void show(){ Scanner input = new Scanner(System.in); while(!"n".equals(name)){ if(age>=18 && age<=60){ //判断年龄 System.out.println(name+ "年龄为"+age+ ",价格为20元" ); }else{ System.out.println(name + "的年龄为:"+age+",免费"); } System.exit(0); } } } public class InitialVistor { public static void main(String[] args) { Scanner input = new Scanner(System.in); Visitor v = new Visitor(); System.out.print("请输入姓名:"); https://www.wendangku.net/doc/a515212479.html, = input.next(); System.out.print("请输入年龄:");

java类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指(B)。 public class Person{ private String name; public void setName(String name){ https://www.wendangku.net/doc/a515212479.html,=name; } }(选择一项) (选择一项) A) Person类 B) Person类自身对象的引用 C) setName()方法的参数name D) setName()方法 2.以下对于JAVA中构造方法说法正确的是(C). (选择一项) A) 构造方法的名字可以与类名不一致 B) 构造方法不能被重载 C) 一个类必须包含至少一个构造方法 D) 构造方法可以有返回值类型 3.以下关于JAVA中的构造方法表述错误的是(B)。

(选择一项) A) 构造方法的名字和类名相同 B) 构造方法不能被重载 C) 构造方法的作用主要是在创建对象时执行一些初始化操作 D) 构造方法没有返回值类型 4.以下关于java中的方法重载说法错误的是(D)。 (选择一项) A) 重载的方法其方法名必须相同 B) 重载的方法其参数个数或参数类型不同 C) 构造方法可以被重载 D) 成员方法不可以被重载 5.在如下所示的Sample类中,共有(C)个构造方法public class Sample{ private int x; private Sample(){ x=1; } public void Sample(double f){ this.x=(int)f; } public Sample(String s){

} } (选择一项) A) 4 B) 3 C) 2 D) 1 6.构造方法重载的要素不包括(B) (选择一项) A) 方法名与类名相同 B) 返回值类型不同 C) 参数列表不同 D) 在同一个类中 7.给定如下JAVA代码,编译运行,结果将是(B) public class Sample{ public double result(double d1,double d2){ return d1

java面向对象编程类的封装接口和基本类库练习题

面向对象编程基本知识练习 一、判断题 1.不需要定义类,就能创建对象。() 2.构造方法用于给类的private 实例变量赋值。() 3.对象一经声明就可以立即使用。() 4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。() 5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。() 6.在类定义中,成员访问权限修饰符不能多次出现。() 7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。() 8.类的方法通常设为public,而类的实例变量一般也设为public。() 9.构造方法在创建对象时被调用。() 10.通过点运算符与类对象的引用相连,可以访问此类的成员。() 11.声明为protected 的类成员只能被此类中的方法访问。() 12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。() 13.类的成员变量可以放在类体的任意位置。() 14.声明为protected 的类成员可以被此类作用域中的任何对象访问。() 15.没有返回值的方法可以用void 来表示,也可以不加。() 二、选择题 1. 下面对对象概念描述错误的是:( ) A 操作是对象的动态属性 B 任何对象都必须有继承性 C 对象间的通讯靠消息传递 D 对象是属性和方法的封装体 2.编译并运行下面的程序,运行结果为:( ) public class A { public static void main(String[] args) { A a=new A(); a.method(8); } void method(int i) { System.out.println(“int:“+i); } void method(long i) { System.out.println(“long:“+i); } } A 程序可以编译运行,输出结果为int:8 B 程序可以编译运行,输出结果为long:8

java 类和对象-6

杭州电子科技大学计算机学院 Java语言程序设计(魏丹老师授课班级) 实验6:类和对象 时间:2017年5月17日学号:16031614 姓名:王晶注意: 3)作业做完后,通过作业提交系统提交。提交网址是: https://www.sojump.hk/jq/12248235.aspx 下次上机时间:2017年5月24日13:00-16:00 地点:1-115 一、实验目的 (1)理解面向对象程序设计与过程化程序设计的区别,理解类和对象的概念,掌握如何 编写和使用类; (2)理解数据成员、方法和构造方法的概念,掌握在类中的声明和使用; (3)理解重载的概念,掌握重载的使用; 二、组织: 2人一组,互相帮助,但在操作试验中,单独进行。 三、评分标准及注意事项: 1. 题目1、2、3、4占10%。 2. 题目5占15%;题目6占20%;题目7占25%。 要求:复制源代码并将运行结果截图至对应的题目下面。

四、实验内容: 实验题目1 定义一个圆类Circle,该类有3个属性,分别是圆周率PI,半径radius和圆对象个数objectNo,其中圆周率和圆对象个数为static成员。并且该类还有两个static方法用来设置圆周率和显示当前圆对象个数。 package hello; public class Circle { static double PI; static int objectNo; int radius; static void setPI(double a){ PI=a; } static void geShu(){ System.out.println(objectNo); } Circle(){ objectNo++; } public static void main(String[] args){ Circle A=new Circle(); setPI(3.14159); geShu(); System.out.println(Circle.PI);} }

Java类对象的定义

Java类对象的定义、生成和使用 1. 解析简单应用程序的结构 public class MyFirstProgram{ public static void main(String []args) { System . out . println ( "Welcome to Java Programming ! This is my first program ! " ) ; } } (1)Java 程序中必须有而且只能有一个公共类,在公共类中必须有而且只能有一个主方法,主方法总是:public static void main(String []args) { } 。 (2)Java程序的任何部分都必须包含在某一个类中。 (3)System.out.println(“Welcome to Java Programming !”);是main 方法的一个语句,作用是把一行文本输出。使用的是System.out对象,并调用了它的println方法。注意,利用句点来调用一个方法(称作:成员访问符),Java的通用语法是: object.method(parameters) //关键字public是一种访问控制符(access modifier)。 //关键字class定义了一个名字为MyFirstProgram的类。 //类名的命名规则符合标识符的规则。习惯上类名是由几个名词紧靠在一起构成,并且每个单词的首字母都大写。 //源代码的文件名必须同公共类的名字一样,并且以.java作为文件扩展名。 // Java解释器总是从类的main方法开始执行代码。 //在c++中的所有函数,在Java中都是某个类的方法。 //与c/C++不同的是,main方法并不对操作系统返回一个“退出代码”。如果main方法正常退出,则Java程序的退出代码为0,表明成功地执行完毕此程序。如果以不同的退出代码结束程序,则使用System.exit方法。

相关文档