已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
士有百折不挠之真心,方有万变不穷之妙用 天下本无难事,心以为难,斯乃真难。 苟不存一难之见于心,则运用之术自出第一节 包(package)操作一、包的结构及使用包(Package)是指一个目录中类(class)和接口(interface)的集合。包是管理类的机制。EmployeeTest在e:javalxEmployee在e:javalxp1在javalx下执行 javac EmployeeTest.javajava EmployeeTest*package p1;public class Employee private int id; private String sex; private String name; private int workingyears;/工龄 private float salary;/gongzi public Employee(int id, String sex, String name, int workingyears) this.id = id; this.sex = sex; = name; this.workingyears = workingyears; public int getId() return id; public void setId(int id) this.id = id; public String getSex() return sex; public void setSex(String sex) this.sex = sex; public String getName() return name; public void setName(String name) = name; public int getWorkingyears() return workingyears; public void setWorkingyears(int workingyears) this.workingyears = workingyears; public float getSalary() return salary; public void setSalary() if (this.workingyears = 10) this.salary = 3000; else this.salary = 2600; public String displayInfo() return name=+name+id=+id+salary=+salary;public String toString() return name=+name+id=+id+salary=+salary; *import p1.Employee;public class EmployeeTest public static void main(String args) Employee employee = new Employee(01, 男, zhang, 10); employee.setSalary(); System.out.println(employee.toString(); employee.setWorkingyears(5); employee.setSalary(); System.out.println(employee.toString(); 说明:类PackageTest被编译后,ABC被自动编译。包对应于文件系统的目录层次。包定义语句必须放在一个Java 源程序文件的最前面。在这个文件定义的所有的类和接口都自动封装在所定义的包中。每个程序中只能有一个包语句。若无package语句,则该单元被置于一个缺省的无名的包中。二、包的引用1、每个使用的类和接口前面给出它们所在的包的名字:2、用import语句格式:import包名.类名三、程序结构在每个源文件中只能定义一个公共类。Java语言的源程序代码只能包含下列内容(空格和注释除外):一个可选择的包声明任意数量的输入语句类和接口定义(若干个)四、为什么要使用包可以将功能相似或相近的类组织在一起在不同的包中类可以起相同的名字有助于实施访问控制权限包是类的互操作机制五、类路径PackageTest.java在c:javalxtest1目录中ABC.java在e:javalxtest中/ABC.javapackage test;public class ABC int x=5; public void show() System.out.println(x=+x); /PackageTest.javapackage test1;import test.ABC;class PackageTest public static void main(String args) ABC obj=new ABC(); obj.show(); 如果设置则可如下编译和执行C:javalxjavac testPackageTest.javaC:javalxjava test1.PackageTest实例2:09.9.24用netbeans完成package test;/职员类public class Employeeprivate int id;private String name;private int workingage;private double salary;public Employee()public Employee(int id,String name,int workingage) this.id=id; =name; this.workingage=workingage;public void setWorkingage(int workingage)this.workingage=workingage;public void setSalary()if(workingage=10)salary=3000;else salary=2000; public String displayInfo()return id=+id+name=+name+workingage=+workingage+salary=+salary; package test1;import test.Employee;public class EmployeeTestpublic static void main(String args) Employee e1=new Employee(1000,li,12); e1.setSalary(); System.out.println(e1.displayInfo(); e1.setWorkingage(6); e1.setSalary();System.out.println(e1.displayInfo();六、类的访问权限 在类之前可加public或取默认值。公共类(Public) 公共类能被其它任何的类访问。在其它包里,如果想使用公共类必须先执行import语句,否则它只能在它定义的包里使用。第2节 常用包简介Java标准类库的结构一、java.lang(语言包)*java.lang软件包提供Java的核心类,包含线程类(Thread)、系统类(System)、对象类(Object)、字符串类(String)等等。这些类都经常使用。由于Java系统在编译时会自动将java.lang包装入程序,在程序中不需要使用import java.lang.*; 语句。 类摘要BooleanBoolean 类将基本类型为 boolean 的值包装在一个对象中。Byte Byte 类将基本类型 byte 的值包装在一个对象中。CharacterCharacter 类在对象中包装一个基本类型 char 的值。DoubleDouble 类在对象中包装了一个基本类型 double 的值。FloatFloat 类在对象中包装了一个 float 基本类型的值。程时,子线程会接收所有可继承的线程局部变量的初始值,以获得父线程所具有的值。IntegerInteger 类在对象中包装了一个基本类型 int 的值。LongLong 类在对象中封装了基本类型 long 的值。MathMath 类包含基本的数字操作,如指数、对数、平方根和三角函数。Number抽象类 Number 是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的超类。Object类 Object 是类层次结构的根类。ShortShort 类在对象中包装基本类型 short 的值。StringString 类代表字符串。StringBuffer线程安全的可变字符序列。StringBuilder一个可变的字符序列。SystemSystem 类包含一些有用的类字段和方法。Thread线程 是程序中的执行线程。二、java.applet这个包包含了设计applet的类,类Applet等。三、java.awt此包包含了设计交互式程序的很多类和接口。类:BorderLayout、CardLayout、FlowLayout、GridLayoutColor、Font、FontMetrics、Event、Image、Rectangle、WindowButton,Checkbox,Choice, TextArea和TextField。四、java.io*此包为数据的输入和输出和文件提供类和接口。 类摘要BufferedInputStream作为另一种输入流,BufferedInputStream 为添加了功能,即缓冲输入和支持 mark 和 reset 方法的能力。BufferedOutputStream该类实现缓冲的输出流。BufferedReader从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。BufferedWriter将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。DataInputStream数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。DataOutputStream数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。File文件和目录路径名的抽象表示形式。FileInputStreamFileInputStream 从文件系统中的某个文件中获取输入字节。FileOutputStream文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。FileReader用来读取字符文件的便捷类。FileWriter用来写入字符文件的便捷类。FilterInputStreamFilterInputStream 包含其它一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterOutputStream此类是过滤输出流的所有类的超类。FilterReader用于读取已过滤的字符流的抽象类。FilterWriter用于写入已过滤的字符流的抽象类。InputStream此抽象类是表示字节输入流的所有类的超类。解码为字符。ObjectInputStreamObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。ObjectOutputStreamObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。五、此包中包含执行网络操作的类和接口。类摘要议处理程序。DatagramPacket此类表示数据报包。DatagramSocket此类表示用来发送和接收数据报包的套接字。ServerSocket此类实现服务器套接字。Socket此类实现客户端套接字(也可以就叫“套接字”)。SocketAddress此类表示不带任何协议附件的 Socket Address。URL类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。URLDecoderHTML 格式解码的实用工具类。URLEncoderHTML 格式编码的实用工具类。六、java.util包* 这个包中包含了一些实用类和接口,如随机数、和其它实用类。类:Random、vector、ArrayList、HashMap类和Set、List接口等。七、java.awt.event包此包中包含了处理事件的类的接口。八、java.awt.image(包) 此包中包含了处理图像的类。九、java.security包 此包提供了对java进行安全管理的一些类。十、java.sql包* 使用此包中的类可对数据库操作。十一、javax.swing包包含了对一些组件操作的类十二、javax.sql包十三、javax.swing.event包第三节 方法重载(overLoad)一、方法重载教材 6.7方法重载 P148方法重载是指多个方法具有相同的方法名,但参数的数量和类型不同。在一个类中定义多个方法,这些方法的名字相同,但参数的数量和类型不能完成相同。程序调用重载的方法时,根据实际参数的数量和类型,自动选择与之匹配的方法。class Demo2 int a,b; int method() /成员方法一 return a+b; int method(int c) /成员方法二 return a+b+c; int method(int c,int d) /成员方法三 return a+b+c+d; Demo2(int a,int b) /构造方法 this.a = a; this.b = b; public class DemoOverloadpublic static void main(String args) Demo2 aDemo2 = new Demo2(1,2); /实例化 int a = aDemo2.method(); /调用成员方法 System.out.println(a); int b = aDemo2.method(3); /调用成员方法 System.out.println(b); int c = aDemo2.method(3,4);/调用成员方法 System.out.println(c);例2:( 自学)public class MethodOverloadint cube(int i)return (i*i*i);double cube(double d)return (d*d*d);public static void main(String args)MethodOverload M1=new MethodOverload();System.out.println(M1.cube(5)+n+M1.cube(2.5); 二、构造方法的重载复习提供多种初始化对象的能力。三、使用this调用其他重载构造方法例1:class Ball private double radius; private String name; public Ball() this(0.0, no name); public Ball(double radius, String name) this.radius = radius; = name; public double getRadius() return radius; public double getVolumn() return (4 / 3 * Math.PI * radius * radius * radius); public String getName() return name; public void setRadius(double radius) this.radius = radius; public void setName(String name) = name; public class BVpublic static void main(String a) Ball ball1=new Ball(); ball1.setName(football); ball1.setRadius(5); System.out.println(ball1.getRadius(); System.out.println(ball1.getVolumn(); 教材实例6-20 P151public class Personprivate String name;private int age;public Person(String name,int age) = name;this.age = age;public Person(String name)this(name,18);public Person(int age)this(Anonymous,age);public void showInfo()System.out.println(Name: + name + tage: + age);public class Testpublic static void main(String args)Person p1 = new Person(Tom,34);Person p2 = new Person(Billy);Person p3 = new Person(56);p1.showInfo();p2.showInfo();p3.showInfo();第4节 静态成员/newsainton/archive/2009/08/02/4401951.aspx一、概念用static关键字可以修饰类的变量和方法,使用它说明的类成员称为静态成员。 二、调用类名.静态成员名。三、实例变量 class Circle double PI = 3.14159265; private int radius; public Circle(int radius) this.radius = radius; public double circumference() return 2 * PI * getRadius(); public double getArea() return PI * getRadius() * getRadius(); /* * return the radius */ public int getRadius() return radius; /* * param radius the radius to set */ public void setRadius(int radius) this.radius = radius; public class ClassVariableTester public static void main(String args) Circle circleOne = new Circle(5); Circle circleTwo = new Circle(5); System.out.println(circleOne:area=+circleOne.getArea(); System.out.println(circleTwo:area=+circleTwo.getArea(); 四、类变量 class Circle static double PI = 3.14159265; private int radius; public Circle(int radius) this.radius = radius; /在非静态方法里可以使用静态成员。 public double circumference() return 2 * PI * getRadius(); public double getArea() return PI * getRadius() * getRadius(); /下面是错误的,在静态方法里面不能使用非静态成员 /public static double getArea() / / return PI * getRadius() * getRadius(); / /* * return the radius */ public int getRadius() return radius; /* * param radius the radius to set */ public void setRadius(int radius) this.radius = radius; public class ClassVariableTester1 public static void main(String args) Circle circleOne = new Circle(5); Circle circleTwo = new Circle(5); System.out.println(circleOne:area=+circleOne.getArea(); System.out.println(circleTwo:area=+circleTwo.getArea(); System.out.println(circleOne.PI); System.out.println(circleTwo.PI); System.out.println(Circle.PI); Circle.PI = 3.14; System.out.println(circleOne.PI); System.out.println(circleTwo.PI); System.out.println(Circle.PI); 实例:class Person/方便起见,暂时不封装String name;int age;static String bornCity = 宁波;public Person(String name,int age) = name;this.age = age;public String getInfo()return 姓名: +name+,年龄: +age+,籍贯: +bornCity;class OODemo06public static void main(String args)Person p1 = new Person(邵逸夫,60);Person p2 = new Person(包玉刚,61);Person p3 = new Person(蒋介石,63);System.out.println(-修改籍贯之前-);System.out.println(t|-+p1.getInfo();System.out.println(t|-+p2.getInfo();System.out.println(t|-+p3.getInfo();System.out.println(-修改籍贯之前-);/通过类名称.static属性的格式去修改属性Person.bornCity = 北京;System.out.println(t|-+p1.getInfo();System.out.println(t|-+p2.getInfo();System.out.println(t|-+p3.getInfo();五、类方法2010.3.22例1public class MyMath public static int max(int a,int b) return (a b ? a : b); /文件名TestMyMath.java public class TestMyMath public static void main(String args) int m = 10; int n = 20; int k = MyMath.max(m,n); 2、class PersonString name;int age;static String bornCity = 宁波;/只编写一个可以修改bornCity属性的方法public static void setBornCity(String city)/this是当前对象,而static属性是隶属全类的,不是某个对象,所以不能用this关键字/this.bornCity = city;bornCity = city;public Person(String name,int age) = name;this.age = age;public String getInfo()return 姓名: +name+,年龄: +age+,籍贯: +bornCity;class OODemo07public static void main(String args)Person p1 = new Person(邵逸夫,60);Person p2 = new Person(包玉刚,61);Person p3 = new Person(蒋介石,63);System.out.println(-修改籍贯之前-);System.out.println(t|-+p1.getInfo();System.out.println(t|-+p2.getInfo();System.out.println(t|-+p3.getInfo();System.out.println(-修改籍贯之前-);/通过类名称.static属性的格式去修改属性/Person.bornCity = 北京;/使用static声明的方法,可以直接用类名称.方法()的格式调用Person.setBornCity(北京);System.out.println(t|-+p1.getInfo();System.out.println(t|-+p2.getInfo();System.out.println(t|-+p3.getInfo();public class Student private static int totalStudents; public Student() totalStudents+; public static int getTotalStudents() return totalStudents; public class StudentStaticTest public static void main(String a) Student student1=new Student(); Student student2=new Student(); Student student3=new Student(); System.out.println(Student.getTotalStudents(); System.out.println(student1.getTotalStudents(); System.out.println(student2.getTotalStudents(); System.out.println(student3.getTotalStudents(); 上例可作如下修改:class Student private static int totalStudents; public Student() totalStudents+; public static int getTotalStudents() return totalStudents; public static void main(String a) Student student1=new Student(); Student student2=new Student(); Student student3=new Student(); System.out.println(Student.getTotalStudents(); System.out.println(student1.getTotalStudents(); System.out.println(student2.getTotalStudents(); System.out.println(student3.getTotalStudents(); getTotalStudents(); 例6-26public class Test private int i = 5;public void m1()i+;public void m2()m1(); /合法,等价于 this.m1();public static int m3()i+;/非法public static void main(String args)m2();/非法m3();/合法,等价于Test.m3();改正:public class Test private static int i = 5;public void m1()i+;public void m2()m1(); /合法,等价于 this.m1();public static int m3()i+;public static void main(String args)Test test=new Test(); test.m2();m3();/合法,等价于Test.m3();六、小结类的静态变量可被所有对象公用,因此我们又把静态变量称为类变量。其它一般的变量称为实例变量。1静态变量在内存中只有一个拷贝2在静态方法中不能直接访问实例方法和实例变量3静态方法和静态变量都可以通过类名直接访问。强调:这里只需要记住一句话: static方法只能直接调用static方法,否则只能通过实例化对象(new对象)来访问该方法. 这里最典型的例子是main方法的调用. 我们知道,main方法是 static方法, 在main方法中要调用非static方法的话,必须要先实例化一个该方法所在类的对象,通过该实例化对象去调用方法. 如果该方法是static方法,main函数即可直接调用,不需再实例化类对象了七、 挑错 第五节 继承一、引例继承是一种有已有的类创建新类的机制。利用继承,可以先创建一个拥有共同属性的一般类,根据该一般类在创建具有特殊属性的新类。由继承得到的类成为子类,被继承的类称为父类。不采用继承,会造成大量代码重复,在修改时会造成不必要的麻烦。public class AgricultureStudent private String id; private String name; private String Speciality; private int botany;/植物学 public String getId() return id; public void setId(String id) this.id = id; public String getName() return name; public void setName(String name) = name; public String getSpeciality() return Speciality; public void setSpeciality(String Speciality) this.Speciality = Speciality; public int getBotany() return botany; public void setBotany(int botany) this.botany = botany; *public class InformationStudent private String id; private String name; private String Speciality; private int DataStructure; public String getId() return id; /* * param id the id to set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业年度综合发展分析报告
- 初中家长会班主任发言稿模板
- 初中语文模拟试卷与评测报告
- 城市商业地产租赁合同范文
- 小学二年级语文填空与搭配练习
- 企业投资项目合作流程详解
- 房地产项目开发计划及进度控制
- 基于AI的产品质量检测流程
- 影视后期制作流程标准及质量控制
- 建筑装饰材料采购合同示范
- 老旧小区架空线入地改造方案
- 电力自动化专业毕业论文
- 留置看护培训课件
- 电子衡器培训 课件
- 学堂在线 机器学习初步 章节测试答案
- 公益诉讼检察课件
- 2023-2024学年语文四年级上册-第六单元主题阅读练习(含答案)
- 医院后勤服务培训课件
- 2025年小学突发公共卫生事件应急预案学校公共事件应急预案
- 临床成人气管切开患者说话瓣膜临床应用规范共识
- 涉路施工培训课件
评论
0/150
提交评论