ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:76.35KB ,
资源ID:12368478      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12368478.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java面向对象知识点.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java面向对象知识点.docx

1、java面向对象知识点面向对象的知识点1, path 和classpath path:是指向所有java命令的 classpath:是java执行时所需要的环境属性,java命令根据classpath所指定的区域找到所需要的类,如果此类不存在,则会出现类没有发现的错误。2, Java的数据类型划分: 基本数据类型|- 数值型|- 整数:byte、short、int、long|-小数:float、double |- 字符型:char |- 布尔型:boolean 引用数据类型:数组、类、接口|- 就是讲一个堆内存空间的使用权交给了其他对象3, Java中的关键字: 未使用到的关键字:goto、c

2、onst 新增加的关键字:assert、enum4, 方法 概念:可重复调用的代码,如果现在一个方法要由主方法直接调用,则声明格式为:Public static 返回类型|void 方法名称(参数列表)return返回值 方法中可以直接使用return返回到方法的调用处 方法重载:方法名称相同,但是参数类型或或个数不同,条用时根据参数的类型或个数的不同,调用的方法体也不同,System.out.println()方法体本身就属于重载操作5, 数组 定义格式:数据类型 数组名=new 数据类型长度;|- 程序中一旦出现new关键字就表示开辟新的堆内存地址。6, 面向对象的三大特征:封装,继承、多

3、态7, 类与对象的关系 有类之后才能产生对象 类是对象的操作模板,对象是类的实例,没有对象类是无法使用的。8, 类使用class定义,类中由属性或方法组成9, 对象的产生 声明对象一:类名称 对象名称=new 类名称(); 声明对象二:先声明对象,然后实例化对象:类名称 对象名称=null;/在栈内存中开辟了一段新空间对象名称=new 类名称();/开辟对应的堆内存空间,保存的是所有的属性内容10, 封装性在java中使用private关键字来实现封装操作,被封装的属性是无法对外访问,需要getter及setter方法。方法的命名要求:第一个单词的首字母小写,之后每个单词的首字母大写。11,

4、构造方法构造方法的主要目的是为类中的属性初始化,构造方法定义与类名称相同,但是没有返回值类型,在使用关键字new实例化对象的时候调用,如果一个类中没有明确的定义构造方法的话,则会自动生成一个无惨的,什么都不做的构造方法。也就是说保证一个类中至少一个构造方法存在,构造方法本身也是可以进行方法的重载,只要参数的类型或个数不同就可以完成重载操作。12, 匿名对象:只使用一次的对象,使用一次之后将被垃圾收集。13, 类的开发步骤1. 习题讲解1. 编写并测试一个代表地址的Address类,包括以下属性:国家、省份、城市、街道、邮编。要求:可以此地址类中得到一个完整的地址信息。程序代码如下:class

5、Address private String national; private String province; private String city; private String street; private String zipcode; public Address(String national,String province,String city,String street,String zipcode) this.setNational(national); this.setProvince(province); this.setCity(city); this.setS

6、treet(street); this.setZipcode(zipcode); public String getInfo() return 地址信息:+n+ t国家:+this.getNational()+n+ t省份:+this.getProvince()+n+ t城市:+this.getCity()+n+ t街道:+this.getStreet()+n+ t邮编:+this.getZipcode(); public void setNational(String national) this.national=national; public void setProvince(Stri

7、ng province) this.province=province; public void setCity(String city) this.city=city; public void setStreet(String street) this.street=street; public void setZipcode(String zipcode) this.zipcode=zipcode; public String getNational() return this.national; public String getProvince() return this.provin

8、ce; public String getCity() return this.city; public String getStreet() return this.street; public String getZipcode() return this.zipcode; public class Dizhi public static void main(String args) Address add=new Address(中国,北京,北京市,西城区,100088); System.out.println(add.getInfo(); 2. 定义并测试一个代表员工的Employee

9、类,属性包括:员工姓名、员工编号、员工基本薪水、员工薪水增长额;方法包括:构造方法、获取员工姓名、获取员工编号、获取员工基本薪水、计算增长后的工资总额。程序代码如下:class Employee private String name; private int number; private float sell; private float sumsell; public Employee(String name,int number,float sell,float sumsell) this.setName(name); this.setNumber(number); this.setS

10、ell(sell); this.setSumsell(sumsell); public String geterName() return this.name; public int geterNumber() return this.number; public float geterSell() return this.sell; public float geterSumsell() return this.sumsell; public float geterZongsell() return this.sell+this.sumsell; public String getInfo(

11、) return 员工信息:n+ 员工姓名:+getName()+n+ 员工编号:+getNumber()+n+ 基本薪水:+this.getSell()+n+ 增长薪水:+this.getSumsell(); public void setName(String name) this.name=name; public void setNumber(int number) this.number=number; public void setSell(float sell) this.sell=sell; public void setSumsell(float sumsell) this.

12、sumsell=sumsell; public String getName() return this.name; public int getNumber() return this.number; public float getSell() return this.sell; public float getSumsell() return this.sumsell; public class Yuangong public static void main(String args) Employee emp=new Employee(张三,111,8888.0f,888.0f); S

13、ystem.out.println(员工信息:); System.out.println(t员工姓名:+emp.geterName(); System.out.println(t员工编号:+emp.geterNumber(); System.out.println(t基本薪水:+emp.geterSell(); System.out.println(t增长薪水:+emp.geterSumsell(); System.out.println(t增长后薪水:+emp.geterZongsell(); System.out.println(emp.getInfo(); 3. 定义一个圆形类,可以返回

14、一个圆的面积,周长。2. 讲解知识点1. String类及String类的相关操作方法;2. This关键字3. Static关键字4. 内部类2.1 String类2.1.1 String 的两种实例化方式: String本身是一个类,在String类中定义了如下的构造方法:public String(String original) 可以接受一个String 类的对象,并重新实例化String对象,除了此方法之外还可以采用直接赋值的方式进行对象的实例化。public class Stringdemo01 public static void main(String args) String

15、 str1=hello!; /使用直接赋值的方式对String对象实例化 String str2=new String(String对象的实例化); /通过构造方法实例化String对象 System.out.println(str1+str2); 2.1.2 String的两种比较方式假设,现在有以下的一道程序,观察String的比较问题:public class Stringdemo02 public static void main(String args) String str1=hello!; /使用直接赋值的方式对String对象实例化 String str2=new String

16、(hello!); /通过构造方法实例化String对象 String str3=str2; System.out.println(str1=str2-+(str1=str2); System.out.println(str1=str3-+(str1=str3); System.out.println(str2=str3-+(str2=str3); 运行结果为:此问题,从内存关系中来分析一下结果:从此得知,两个String的比较是实际上两个对象的堆空间地址的比较,具体的来讲,实际上比较的是地址的值,因为地址是以数值的形式存在的。但是现在比真正比较的不是地址的值,而是两个字符串的内容,所以现在需

17、要使用String类中的equals()方法进行比较,此方法定义如下: public boolean equals(String str);范例:使用equals比较public class Stringdemo03 public static void main(String args) String str1=hello!; /使用直接赋值的方式对String对象实例化 String str2=new String(hello!); /通过构造方法实例化String对象 String str3=str2; System.out.println(str1 equals str2-+str1.

18、equals(str2); System.out.println(str1 equals str3-+str1.equals(str3); System.out.println(str2 equals str3-+str2.equals(str3); 此时结果为都是true,因为此时比较的两个字符串的内容。注意:String的比较中: =是比较两个字符串的地址值 equals是比较两个字符串的内容。2.1.3 一个字符串实际上就是String的匿名对象一个字符串是用“”双引号括起来的,那么一个字符串的常量实际上本身就属于String的一个匿名对象。例如:public class Stringd

19、emo04 public static void main(String args) String str1=hello; /使用直接赋值的方式对String对象实例化 System.out.println(hello.equals(str1); 结果为true,此时证明一个字符串(这里是hello)就是一个String 的匿名对象。2.1.4 String的两种实例化方式的区别所有的操作以内存图形表示出来。String str1=”hello!”;现在在堆内存空间中只开辟了一个空间,不会产生多余的内容。如果现在使用关键字new的方式又会如何?String str2=new String(”h

20、ello”);实际上上述的实例化中已经开辟了两个堆内存空间,之中第一个是垃圾。所以比较两中实例化方式,更合适使用第一个 直接赋值方式 String str1=“hello”;所以实际开发中绝对不能使用关键字new调用String类的String(String org)的构造方法。 而且,如果使用直接赋值的方式也可以减少堆内存的开销。例如:public class Stringdemo05 public static void main(String args) String str1=hello; /使用直接赋值的方式对String对象实例化 String str2=hello; String

21、 str3=hello; System.out.println(str1=str2-+(str1=str2); System.out.println(str1=str3-+(str1=str3); System.out.println(str3=str2-+(str3=str2); 结构都为true。为什么呢?实际上以上的三个对象表示的都是同一个空间的引用,因为对于String来讲使用直接赋值方式会在字符串池中保存内容。如果之后再声明字符串的时候发现内容一样了,则不会中心开辟空间了,而是在从内存池中取出数据继续使用。2.1.5 字符串的内容一旦声明之后则无法修改public class Str

22、ingdemo06 public static void main(String args) String str=hello; str+= world; System.out.println(str); 虽然最终输出的结果该表了“hello world”,但是字符串内容真的改变了吗?实际上来讲,字符串变量改变中变得是内存空间的地址指向,而本身的字符串的内容没有任何的变化。如下所示:所以,在实际的开发中以下的代码绝对避免:public class Stringdemo07 public static void main(String args) String str=hello; for(in

23、t i=100;i100;i+) str += i; System.out.println(str); 以上的操作要不断的断开已有的链接,指向新链接100次,整体代码的性能极其低,所以遇到此类代码绝对不要使用。2.2 String类的常用操作方法(重点)2.2.1, 字符与字符串在各个语言中实际上一个字符串就是表示一组字符。所以在String类中提供了以下的方法操作字符与字符串间的转换关系: 根据字符串中的索引找到指定位置的字符:public char charAt(int index) 将字符串变为字符数组:public char toCharArray() 将字符数组变为字符串:|- 将全

24、部的字符数组变为String类型:public String(char value)|-将部分的字符数组变为String类型:public String(char value,int offset,int count)范例:取出字符串中指定位置的字符 public char charAt(int index)public class StringAPIdemo01 public static void main(String args) String str=hello; char c=str.charAt(1); System.out.println(c); 范例:字符串字符数组(互相转换)

25、 public char toCharArray()public class StringAPIdemo02 public static void main(String args) String str=hello world!; char c=str.toCharArray();/将字符串变为字符数组 for(int i=0;ic.length;i+) System.out.print(ci+,); String str1=new String(c); /将全部字符数组重新变为String String str2=new String(c,0,5); /将05的字符数组变为String S

26、ystem.out.println(str1); System.out.println(str2); 2.2.2, 字节与字符串与字符数组的操作一致,一个字符串变为字节数组,一个字节数组也可以变为字符串: 将String变为字节数组:public byte getByte() 将字节数组变为String:|- 全部:public String(byte bytes)|- 部分:public String(byte bytes,int offset,int length)范例:将字符串变为字节数组public class StringAPIdemo03 public static void ma

27、in(String args) String str=hello world!; byte b=str.getBytes();/将字符串变为字节数组 String str1=new String(b); /将全部字符数组重新变为String String str2=new String(b,0,5); /将05的字符数组变为String System.out.println(str1); System.out.println(str2); 2.2.3, 判断是否以指定的字符串开头或结尾 判断是否以指定的字符串开头:public boolean startsWith(String prefix)

28、 判断是否以指定的字符串结尾:public boolean endsWith(String suffix)范例:验证操作public class StringAPIdemo04 public static void main(String args) String str=*hello world#; System.out.println(str.startsWith(*); System.out.println(str.endsWith(#); 2.2.4, 替换操作 使用以下的方法可以完成替换的操作:|- public String replaceAll(String regex,String replacement)范例:替换内容public class StringAPIdemo05 public static void main(String args) String str=hello world; String newStr=str.replaceAll(l,x); System.out.println(newStr); 把str中的“l”换成了“x”。结果为:hexxo worxd2.2.5, 字符串截取 使用以下两个方法可以完成字符串截取操作:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1