定义无参方法 定义格式 static void 方法名(){ 方法中的代码 } 定义带参方法 定义格式 static void 方法名(类型1 变量1,类型2 变量2。。){ 方法中的代码 } Ctrl+alt+m 定义方法 有返回值类型 static 返回值类型 方法名(参数列表){ 方法中的代码 return 返回的数据; } 方法的重载:方法名称相同,但是参数的类型和个数不同,通过传递参数的个数和类型不同来完成不同的功能。 public void tell(int i,int j){ System.out.println(i+j); } public void tell(int i,int j,int n){ System.out.println(i+j+n); } 类的创建 class Person{ String name; int age; public void tell(){ } } 类与对象的关系 类是对某一类事物的描述,是抽象的、概念上的意义,对象是实际存在的该类事物的每一个个体,也被称为对象或实例。 需要声明并进行实例化 方法的递归调用 Person per=new Person(); per.name="aa"; per.age=10; per.tell(); 面向对象三大特征 1.封装性 2.继承:扩展类的功能 3.多态性:方法的重载 对象的多态性 封装性 1、保护某些属性和方法不被外部所看见 2、为属性和方法进行封装是通过关键字private声明的 实现该属性的set和个体方法,为外部所访问 匿名对象 匿名对象就是没有名字的对象,如果程序Hongkong只使用一次该对象,就可以使用匿名对象的方式。 new Student().tell(); 构造方法 访问修饰符 类名称(){ 程序语句 } 构造方法名必须与类名一致 构造方法没有返回值 构造方法主要为类中的属性进行初始化 每个类在实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候会创建一个什么都不做的构造方法 引用传递 this关键字 static关键字 继承的实现:扩展父类的功能 继承的限制:1.在Java中只允许单继承(可以多层继承) 2.子类不能直接访问父类的私有成员(可以使用get和set方法) 子类对象的实例化 1.在子类对象实例化之前,必须先调用父类中的构造方法,之后调用子类构造方法。 方法的重写 1.在继承中,也存在着重写的概念,其实就是子类定义了和父类同名的方法 2.定义:方法名称相同,返回值相同,参数相同。 3.重写限制:子类不能比父类更加严格 super强行调用父类方法的执行 super不一定在重写中使用,也可以表示那些方法时从父类中继承而来的 重写与重载 重载 方法名称相同,参数的类型或个数不同 对权限没有要求 发生在一个类中 重写 方法名称、参数的类型、返回式类型全部相同 被重写的方法不能拥有比父类更加严格的权限 发生在继承中 和接口 final关键字 使用final声明的类是不能被继承 使用final声明的方法不能被重写 使用final声明的变量变成常量,常量不可以被修改的 抽象类 包含一个抽象方法的类就是抽象类 抽象方法 声明而未被实现的方法,抽象方法必须使用abstract关键字声明 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 abstra class className{ 属性 方法 抽象方法 } 抽象类不能直接实例化,要通过其子类进行实例化 接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部是常量和公共的抽象方法所组成。 接口的格式 interface interfaceName{ 全局常量 抽象方法 } 接口的实现也必须通过子类,使用关键字implements,而且接口是可以多实现的。 String 字符串的常用方法 直接赋值(比较多) 使用关键字new String str="hello" String str1=new String("hello"); "=="比较的是地址 “equals”比较的是内容 String str=“hello” 1.字符串长度length str.length(); 2.字符串轉化成數組str.toCharArray(); 3.從字符串中取出指定位置的字符str.charAt(7); 4.字符串与byte数组的转换byte bytts[]=str.getByte(); 5.过滤字符串中存在的字符的位置:str.indexOf("@"); 6.去掉字符串的前后空格:str.trim(); 7.从字符串中取出子字符串:subString(); 8.大小写转换:toLowerCase() toUpperCase(); 9.判断字符串的开头结尾字符:endWith() startWith(); 10.替换String字符串中的一个字符:replace(); StringBuffer 缓冲区,本身也是操作字符串,但是与String不同,StringBuffer是可以更改的。StringBuffer是一个操作类,所以必须通过实例化进行操作。 StringBuffer的常用方法 append()追加内容 insert()插入 replace()替换 indexOf()过滤字符串中存在的字符的位置 StringBuilder 一个可变的字符序列,该类被设计作用StringBuffer的一个简易替换,用在字符缓冲区被单个线程使用的时候。建议优先考虑该类,速度比StringBuffer要快。 常用方法 append insert。 多态性的表现:方法的重写与重载,对象的多态性 对象的多态性: 向上转型:程序会自动完成 父类 父类对象=子类实例 向下转型: 子类 子类对象=(子类)父类实例 在Java中可以使用instanceof关键字判断一个对象到底是不是一个类的实例。 Eclipse 中快捷键 Ctrl+1 快捷修复 shift+Enter 进入下一行 ctrl+F11 快速运行 Ctrl+M 将工作区放大 throws关键字 1.在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用者处理 格式: public void tell()throws Exception{}; throw关键字抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。 API 应用程序接口 接受键盘的输入 Scanner类的使用 Scanner s=new Scanner(System.in); |
Java初步(OOP)
最新推荐文章于 2024-05-24 18:14:28 发布