Java初步(OOP)

来源:互联网 发布:php伪静态 编辑:程序博客网 时间:2024/05/22 17:41
定义无参方法
定义格式
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);
0 0
原创粉丝点击