Java初步(OOP)

定义无参方法
定义格式
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发阳光旅行网app中用户下单功能,可实现用户添加订单并完善出行人信息、修改订单,删除订单以及打印行程信息等功能。 具体功能要求如下: (1)显示系统主菜单 包括添加出行订单、查看我的出行订单、修改订单信息、删除出行人、查看行程、退出系统6项功能,其他功能本项目不做要求,当用户选择功能编号后可进入执行相应功能。执行结果如图1所示。 图1 主菜单 (2)添加出行订单 填写出行日期、联系人手机号码、循环录入出行人信息。 出行人信息包括:  出行人类别:成人、儿童(1.2m以下)、老人(65岁以上)  姓名  年龄(如选择类别为老人,输入年龄不足65岁的,显示提示信息“对不起,老人订单年龄需为65岁以上!”)  如果是儿童,需确定是否占床 每成功录入一条出行人信息后,显示出其详细信息,并计算出行金额。定价如下:  成人:2000元/人  儿童:免费,如需占床另加30元  老人:半价,即1000元/人 当一条出行人信息录入完毕后,提示“是否继续添加(Y/N)?”,此处不区分大小写,当输入y或Y时继续录入下一条,否则显示订单信息,包括:  出行日期  联系人手机号码  订单总金额(即所有出行人定单金额之和) 最后显示主菜单。执行效果如图2所示。 图2 添加出行订单 (3)查看我的出行订单信息 查看我的出行订单:查看所录入的订单信息。包括出行日期、联系人手机号码、所有出行人信息,运行效果如图3所示。 图3 查看我的出行订单 (4)修改行程信息 可修改出行日期、联系人手机号码,要求手机号码必须为11位,否则抛出异常信息,提示“手机号码必须为11位”,运行效果如果4所示。 图4 手机号码不是11位 正确修改后,显示修改后的信息,并提示“修改成功!”。如图5所示。 图5 修改订单成功 (5)删除出行人 填写要删除的出行人姓名,执行删除操作,删除成功后给出提示“删除成功!”,如图6所示。如果输入姓名错误,则提示“对不起,定单中不包含此游客信息!”如图7所示。 图6 删除出行人成功 图7 删除出行人失败 (6)查看行程 显示本次旅行行程信息。即读取“旅游行程.txt”文件(素材提供),显示在控制台。运行效果如图8所示。 图8 查看行程 (7)退出系统 退出当前系统,显示“欢迎下次再来。”如图9所示。 三、要求与实现步骤 (一)不使用数据库,使用对象和集合存储数据 (二)定义实体类(成人订单、儿童订单、老人订单),儿童订单、老人订单为成人订单的子类。实体类至少包含但不局限于以上3个。 (三)在各实体类中均需实现各自计算订单价格、显示订单信息的方法,使用方法的重写。 (四)定义工具类,实现查看我的出行订单、添加订单、修改行程信息、删除出行人、查看行程等方法。需使用到对象传参。 (五)使用泛型集合存储所有出行人信息,使用集合的遍历实现查看订单信息、统计订单总金额、删除出行人等功能。 (六)显示信息时,只有儿童出行人需显示是否占座,需使用面向对象多态实现。 (七)修改行程信息时,当手机号码录入错误时需使用throw手动抛出异常。 (八)使用I/O技术实现文件的读取功能,将文本文件“行程信息.txt”中的内容显示到控制台。 (九)定义测试类,完成项目功能菜单以及整体流程,调用相应方法实现具体功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值