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);
定义格式
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
- Java初步(OOP)
- 面向对象(OOP)---java
- JAVA-OOP(面向对象)
- java OOP
- Java OOP
- JAVA OOP
- JAVA-OOP
- Java OOP
- Java OOP
- java OOP
- java-oop
- Java OOP
- Java OOP
- Java OOP
- Java OOP
- Java的OOP思想(自己理解)
- Java(二)--OOP设计思想
- Java知识整理(二)之OOP
- Java画图程序设计
- Java中的线程
- 《编程之美》——最大公约数问题
- LeetCode23:Merge k Sorted Lists
- cocoaPods
- Java初步(OOP)
- 架构师之路
- 读取文本的内容和将文本写入文件中
- Make 命令教程
- Java中的数组
- android ImageLoader 缓存下载显示网络图片
- navicat备份复制mysql数据库
- linux下性能测试工具: http_load、
- Archlinux On Raspberrypi B+