




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java面向对象程序设计基础1 类的结构1.1 类声明类的定义:class A成员变量与成员方法的定义1.2 创建对象对象的创建:A a; /对象的声明,即定义A类的一个对象,名为aa=new A(); /对象的创建,即为a对象开辟一个内存区, /并调用构造方法A()对对象进行初始化上面两步也可以合并为一步:A a=new A(); a 对象变量方法/*Class1.java*/class Manint height;int age;public class Class1public static void main(String args)Man man1;man1=new Man();man1.height=180;man1.age=20;System.out.println(man1.height);System.out.println(man1.age);1.3 构造方法构造方法是在创建对象时调用执行的特殊函数,用于对对象进行初始化。如果编程者没有编写构造方法,编译器会自动提供一个缺省的无参的空构造方法。但如果编程者编写了构造方法,编译器将不再提供缺省的无参的空构造方法。造方法的名字必须与类名相同,且没有任何返回值,也不可使用void关键字。可以在构造方法中使用this()来调用其他被重载的构造方法。/*Class17.java*/public class Class17int a;public Class17() /构造方法a=10;public static void main(String args)Class17 ob=new Class17();System.out.println(ob.a);/*Class18.java*/public class Class18int a;public Class18()a=10;public Class18(int a)this.a=a;public static void main(String args)Class18 ob1=new Class18();Class18 ob2=new Class18(20);Class18 ob3=new Class18(30);System.out.println(ob1.a);System.out.println(ob2.a);System.out.println(ob3.a);/*Class19.java*/public class Class19int a;public void Class19() /这里Class28()不是构造函数a=10;public static void main(String args)Class19 ob=new Class19();System.out.println(ob.a);2 类的成员2.1 成员变量和局部变量类体中定义的变量称为成员变量,而类的成员方法中定义的变量以及方法中的形式参数则称为局部变量。成员变量在整个类体中有效,而局部变量只在定义它的方法中有效。 使用局部变量之前必须对其进行初始化,否则编译时会出错。2.2 关键字this this代表本类的对象;通过它可以引用本类的成员。只能在实例方法中使用this关键字。this()可用于调用本类的构造方法。/*ThisDemo.java*/class ThisDemo1 int a1=1,a2=2; void ss()int a1=10, a2=20;a1=this.a1;System.out.println(a1);System.out.println(a2); public class ThisDemo public static void main(String args)ThisDemo1 aa=new ThisDemo1();aa.ss();System.out.println(aa.a1); 2.3 类方法和实例方法有关键字static修饰的称为类方法(又称静态方法)和类变量(又称静态变量),而没有static修饰的称为实例方法和实例变量。实例方法和实例变量只能通过对象名引用,而类方法和类变量既能通过对象名引用,也能通过类名引用。 类方法只能直接访问本类中的类成员。/*ConstructorDemo.java*/class ConstructorDemo1 int a1,a2; ConstructorDemo1() /构造方法 a1=1; a2=2; static void pntout(String s) /类方法System.out.println(s);public class ConstructorDemo public static void main(String args)ConstructorDemo1 abc=new ConstructorDemo1();System.out.print(1+2=);System.out.println(abc.a2 + abc.a1);ConstructorDemo1.pntout(你们好,朋友们!); /*Class3.java*/public class Class3int a;static void setA(int b) /静态方法a=b; /错,静态方法中不能直接访问非静态的成员变量apublic static void main(String args)Class3.setA(10);/*Class4.java*/public class Class4static int a; /静态变量static void hello() /静态方法System.out.println(你好);static void setA(int b) /静态方法a=b;hello();void printA()System.out.println(a); /非静态方法可以访问静态变量ahello(); /非静态方法也可以访问静态方法hello()public static void main(String args)Class4.setA(100);Class4 ob=new Class15();ob.printA();2.4 访问权限(1) 使用在成员变量和成员方法之前的访问控制符成员访问控制符含 义private只能在类的内部被访问public能被所有的类访问缺省(friendly)只能被同一个包中的类访问protected可以被同一包中的类或其他包中的子类访问(2) 使用在类之前的访问控制符类访问控制符含 义public能被所有的类使用缺省(friendly)只能被同一个包中的类使用3 类的继承和接口3.1 类的继承 一个类可以通过关键字extends继承另一个类,被继承的类称为父类,而继承的类称为子类。子类可以继承父类所有的非私有的成员作为自己的成员。/*ExtendsDemo.java*/class ExtendsDemo1 int x=8;private int y=9;public double z=10;void pntout(String s) System.out.println(s); class ExtendsDemo2 extends ExtendsDemo1 float w=100.0f; public class ExtendsDemo public static void main(String args) ExtendsDemo2 abc=new ExtendsDemo2(); System.out.println(abc.x); System.out.println(abc.z); System.out.println(abc.w); abc.pntout(你好,朋友!); 3.2 重写与关键字super 如果子类定义了与父类中完全相同的方法,则称在子类中重写或覆盖了父类的方法,如果子类定义了与父类中完全相同的变量,则称在子类中隐藏了父类的变量。通过关键字super可以在子类中访问被隐藏的父类的变量。super()可以调用父类的构造方法。与this关键字一样,也只能在实例方法中使用super关键字。/*SuperDemo.java*/class SuperDemo1 String name=玲玲; int age=18; long tel=66666666;class SuperDemo2 extends SuperDemo1 String name=张三; /与父类的成员变量同名 int age=30; /与父类的成员变量同名 long tel=88888888; /与父类的成员变量同名 void SuperDemo2() /成员方法name=; /引用父类的成员变量age=super.age; /引用父类的成员变量System.out.println(姓名: + name);System.out.println(年龄: + age);System.out.println(电话: + tel); public class SuperDemo public static void main(String args)SuperDemo2 abc=new SuperDemo2();abc. SuperDemo2(); 3.3 final类和abstract类用关键字final修饰的类称为最终类,即不能派生子类。用关键字final修饰的变量称为最终变量,必须在声明时赋予初始值,使用中不能修改。用关键字abstract修饰的方法称为抽象方法,抽象方法没有方法体。包含有抽象方法的类就是抽象类,抽象类必须用关键字abstract加以修饰。抽象类不能创建对象,但可以派生子类。3.4 接口关键字interface用来声明一个接口,通过关键字implements来实现接口。接口体中的所有方法都是抽象方法,所有的属性都默认为static,且都默认为public。在Java中一个类只能继承一个父类,但可以实现多个接口。实现一个接口必须实现接口中的所有抽象方法,哪怕是空实现。/*AbstractDemo.java*/interface AbstractDemo2 int aa=100; float ab=100.0f; void pntout(String ss); /抽象方法class AbstractDemo1 implements AbstractDemo2 /实现一个接口 public void pntout(String ss) System.out.println(ss); /实现接口中的抽象方法 public class AbstractDemo public static void main(String args)AbstractDemo1 abc=new AbstractDemo1();System.out.println(abc.aa);System.out.println(abc.ab);abc.pntout(I am a teacher.); 4 包与import语句在Java中,包指的是接口和类的集合,这些接口和类根据功能的不同,被分别放在不同的包中。包结构的表示方法与目录结构类似,但采用域名表示法,即用点“.”代替“”。包的创建使用package语句,它在当前目录下创建指定的包,并将编译后的类文件放入指定的包中。为了在其他的包中使用所定义的类,必须使用import关键字导入要使用的类。java.lang包是java语言的核心类库(System类和String类均在该包中),系统会自动导入该包中所有的类(import java.lang.*)。4.1 package语句/*Class10.java*/package Mypack.pack1; / 建立用户自己的类库public class Class10 / Class10修饰为public表示能被所有的类访问public void hi()System.out.println(Hi);/*Class11.java*/import Mypack.pack1.Class10; / 使用用户自己的类库public class Class11public static void main(String args)Class10 ob=new Class10();ob.hi();4.2 import语句 Java程序不但可以利用本程序中定义的类,还可以通过import语句引入Java提供的类。/*Class12.java*/import java.util.Date; / 使用Java的类库public class Class12public static void main(String args)Date d=new Date();System.out.println(d);5 String类5.1 字符串变量(1) 字符串变量的创建字符串变量的创建主要有两种: String str1=I am a teacher;或 String str2=new String(I am a teacher );/*StringDemo.java*/public class StringDemo public static void main(String args)String str1=I am a student;System.out.println(str1);String str2=new String(str1);System.out.println(str2);String str3=new String(I am a student);System.out.println(str3);String str4=new String();str4=I am a teacher;System.out.println(str4); (2) 字符串和字符数组的关系可以通过字符数组来创建一个字符串变量:char chr=t, e, a, c, h, e, r;String str=new String(char);/*StringArrayDemo.java*/public class StringArrayDemo public static void main(String args)char chr=t, e, a, c, h, e, r;System.out.println(chr);System.out.println(chr3);String str1=new String(chr);System.out.println(str1);String str2=new String(chr,0,3);System.out.println(str2);System.out.println(str1.length();System.out.println(str2.length(); 5.2 String类的方法String类的常用方法 public int compareTo(String anotherString)比较当前字符串与anotherString的大小。若当前字符串大,则返回正整数;若当前字符串小,则返回负整数;若相等,则返回0。 public boolean startsWith(String prefix)测试当前字符串是否以指定字符串prefix开始。public boolean endsWith(String suffix)测试当前字符串是否以指定字符串suffix结尾。 public boolean equals(Object anObject)将当前字符串与指定的对象anObject比较。若对象内容相同返回true,否则返回false。 public int indexOf(int ch)从当前字符串中查找指定字符ch,返回其首次出现处的索引。若找不到,则返回-1。 public int indexOf(int ch, int fromIndex)从当前字符串中formIndex处开始查找指定字符ch,返回其首次出现处的索引。返回结果同(9)。 public int indexOf(String str)从当前字符串中查找指定字符串str,返回其首次出现处的索引。返回结果同(9)。 public int indexOf(String str, int fromIndex)从当前字符串中formIndex处开始查找指定字符串str,返回其首次出现处的索引。返回结果同(9)。 public int length()返回当前字符串的长度(字符个数)。 public String replace(char oldChar, char newChar)将当前字符串中的oldChar字符替换为newChar字符。 public String substring(int beginIndex)返回当前字符串中从beginIndex开始至串尾的一个子字符串。 public String substring(int beginIndex, int endIndex)返回当前字符串中从beginIndex开始至endIndex-1处的一个子字符串。 public String trim()去掉当前字符串的前后空格。public static String valueOf(基本数据类型)将数值转换为字符串。public String toLowerCase()将字符串转换为小写形式。public String toUpperCase()将字符串转换为大写形式。5.3 数据类型的转换(1) 字符串转换为数值字符串转换为数值的方法public static int parseInt(String s)将字符串转换为int型。public static double parseDouble(String s)将字符串转换为double型。public static long parseLong(String s)将字符串转换为long型。public static byte parseByte(String s)将字符串转换为byte型。public static short parseShort(String s)将字符串转换为short型。public static float parseFloat(String s)将字符串转换为flo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年山西省忻州市岢岚县部分学校九年级(上)期末数学试卷(含答案)
- 应对焦虑的翻转课件樊登
- 2025年抖音电商滑雪运动用品市场趋势洞察分析报告
- 尾矿库安全管理培训课件
- 输液港宣教课件
- 小鸭子舞蹈创编课件
- 电力线路施工终止及设备回收处理协议
- 跨区域个人住房贷款合同管辖规定
- 高新技术企业股东合作协议及知识产权归属协议
- 垫资支持小微企业融资合同
- 2025年保密知识试题库附参考答案(精练)
- 信息与网络安全培训
- 人教版七上《峥嵘岁月-美术中的历史》教案
- 职工食堂服务(技术方案)
- 厂房租赁合同书格式
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 《计算机网络技术》课程教案(完整版)
- 育肥猪购销协议书
- 《建筑工程设计文件编制深度规定》(2022年版)
- 西安交通大学出版小学信息技术五年级上册教案
- 水库清淤项目可行性研究报告
评论
0/150
提交评论