一 面向对象简介
三个概念,认识一下:
面向对象的分析(OOA):确定需求或者业务的角度,按照面向对象的思想来分析业务。
面向对象的设计(OOD):一个中间过渡环节,其主要作用在OOA的基础上进一步规范化整理,从而建立所要操作的对象以及相互之间的联系,以便能够被OOP直接接受。
面向对象编程(OOP):在前两者的基础上,对数据模型进一步细化。OOP是根据真实的对象来构建应用程序模型。OOP是当今软件开发的主流设计范型,精通OOP是编写出高品质程序的关键。
对象的概念:对象是对问题领域中实体、事件的抽象。对象具有以下特性:
对象的特性:1、万物皆对象 2、对象具有属性和行为 3、对象具有状态 4、每个对象都是某个类的实例
二 类
1 类的定义
类的定义:类是对一组具有相同属性和行为的对象的抽象。
对象:是能够看得到摸的着的真实存在的实体
类和对象的关系:类是对象的抽象;对象是类的实体。
类的组成:属性和行为
属性:成员变量(类中方法外的变量)
行为:成员方法
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类的定义步骤:
定义类
编写类的成员变量
编写类的成员方法
eg:
编写手机类,如下:
类名:
手机(Phone)
成员变量:
品牌(brand)
价格(price
成员方法:
打电话(caLL)
发信息(sendMessage)
package chapter03;
public class Phone {
//成员变量
String brand;
int price;
//成员方法
public void call() {
System.out.println("拨打电话");
}
public void sendMessage() {
System.out.println("发信息");
}
}
接上面,对象的使用
格式:对象名.属性或者对象名.方法
详细版:
使用成员变量:
格式:对象名.变量名
示例:s.age p.brand
使用成员方法:
格式:对象名.方法名
示例:s.show(); p.call();
定义一个测试类PhoneTest,调用上面的Phone类测试
因为测试类,所以需要main方法
package chapter03;
public class PhoneTest {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//使用成员变量
System.out.println(p.brand);
System.out.println(p.price);
p.brand = "华为";
p.price = 2000;
System.out.println(p.brand);
System.out.println(p.price);
//使用成员方法
p.call();
p.sendMessage();
}
}
2 属性定义:
属性(attribute)是Java类中描述事物状态参数的部分。
类的属性定义包括:修饰符、类型和标识符。
声明语法: [< 修饰符>] <数据类型> <属性名> [=<缺省值>];
例:
private String name = "匿名" ;
private int age;
3 方法定义
概述:为什么要有方法?
看如下代码:
//定义两个变量
int a = 6;
int b = 8;
//获取两个数中的较大值
int max = a > b? a : b;
//输出结果
system.out.println( "max:" +max);
如果上面求最大值的代码在程序中需要多次调用。那么每次这样子写都太麻烦和臃肿了。所以方法 出现了,解决该问题,打包在一起,其它地方使用,直接调用即可,如此实现了多次调用。这就是方法!即具有特殊功能的代码集!!
方法(Method)相当于其他语言中的函数,用于描述事物行为或功能。方法是类向外提供的接口,也可以为类内部使用提供服务。
声明语法:
[<修饰符>] <返回值类型> <方法名>([<参数列表>]) {
[<Java语句>]
}
例子
package chapter03;
public class MethodTest {
public static void main(String[] args) {
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber() {
//定义变量
int number = 10;
if (number%2 == 0) {
System.out.println("true");
}else {
System.out.println("false");
}
}
}
思考:为什么控制台没有输出?
方法的调用:
语法格式 方法名();
eg:
isEvenNumber();
注意:方法必须先定义后调用,否则报错
详细如下:
package chapter03;
public class MethodTest01 {
public static void main(String[] args) {
//调用方法
isEvenNumber();
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber() {
//定义变量
int number = 10;
if (number%2 == 0) {
System.out.println("true");
}else {
System.out.println("false");
}
}
}
形参和实参
形参:方法定义中的参数,等同于变量定义格式,由数据类型和变量名组成。例如: int number
实参:方法调用中的参数,等同于使用变量或常量,不带数据类型,可以是常量也可以是变量名,例如:10 和 number
eg:
package chapter03;
public class MethodTest02 {
public static void main(String[] args) {
//1 直接传递常量
isEvenNumber(10);
//2 定义变量,通过变量赋值
// int number = 9;
// isEvenNumber(number);
}
public static void isEvenNumber(int number) {
if (number % 2 == 0) {
System.out.println(true);
}else {
System.out.println(false);
}
}
}
方法使用总结:
方法不能嵌套定义。是平级的。
void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据。如 return 10这样就有问题。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
4 方法重载
条件:相同的类,相同的方法名,不同的参数(即参数类型和参数数量)
package chapter03;
public class MethodOverload {
public static void main(String[] args) {
//调用对应方法
int result1 = sum( 6,8);
System.out.println(result1);
double result2 = sum(6, 8);
System.out.println(result2);
int result3 = sum(6, 7, 8);
System.out.println(result3);
}
//1 求2个int类型数据和的方法
public static int sum(int a,int b) {
return a + b;
}
// 2 求2个double类型数据和的方法
public static double sum(double a,double b) {
return a + b;
}
// 3 求3个int类型数据和的方法
public static int sum(int a,int b,int c) {
return a + b + c;
}
}
5 构造方法
a 定义:Java为提供了专门的方法,在实例化对象时,将成员变量(或属性)进行初始化。称为构造方法(Constructor Method)。
b 作用:创建一个对象,一般构造方法中的语句实现初始化工作
c 特点:
方法名与类名相同,没有返回值
可以由编译器为类提过一个默认无参构造方法
构造方法可以实现重载
d 构造方法只能通过以下方式被调用:
1)在程序中通过new语句调用它;
2)当前类的其他构造方法通过this语句调用它;
3)当前类的子类的构造方法通过super语句调用它。
案例persion类
package chapter03;
public class Person {
/* 属性,成员变量 */
// 姓名
private String name;
// 年龄
private int age;
// 地址
private String address;
// 默认构造方法
public Person() {
}
// 构造方法
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
/* 方法 ,属性对应的获取和设置方法(get/set) */
public String getName() {
return
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
《Java基础课程全套笔记.doc》是一份珍贵的学习资源,专为那些希望深入研究和掌握Java编程高级概念的学习者和开发者而创建。以下是对这个资源的详细描述: 全面的高级主题覆盖:这份文档涵盖了Java编程的高级主题,包括但不限于多线程编程、数据结构与算法、设计模式、I/O 操作、异常处理、性能优化等。每个主题都经过详尽的讲解,使学习者能够深入了解高级编程概念。 实用示例与案例分析:文档中包含了大量的实用示例和案例分析,这些示例不仅有助于学习者理解理论知识,还展示了如何在实际项目中应用这些概念。通过实际案例,学习者能够更好地掌握高级编程技能。 深入的解释和注释:每个高级主题都得到了深入解释和详细注释。这有助于学习者理解每个概念的内涵,同时也提供了清晰的代码注释,使学习者能够轻松理解示例代码。 适用于不同层次的学习者:尽管是高级复习笔记,但这份资源提供了从基础到高级的渐进式学习路径。无论您是初学者还是有经验的开发者,都可以从中获益。初学者可以用它作为高级编程的引导,而有经验的开发者可以通过挑战性的问题来提高自己的技能。 考试和面试准备:这份资源对于准备Java编程相关的考试和面试也非
资源推荐
资源详情
资源评论
收起资源包目录
Java基础课程全套笔记.zip (13个子文件)
5.4 接口的成员特点.txt 5KB
06_GUI编程.txt 11KB
02_Java基础语法 - 2 流程控制语句.txt 8KB
5.1 高级类特性.txt 4KB
01 java入门.txt 3KB
5.6 内部类.txt 10KB
03_面向对象编程.txt 37KB
02_Java基础语法-1概念.txt 13KB
5.2 抽象类的成员特点.txt 2KB
4 数组.txt 10KB
5.5 类&接口.txt 1KB
5.3 接口.txt 2KB
07_异常.txt 12KB
共 13 条
- 1
资源评论
程序员Ale-阿乐
- 粉丝: 7800
- 资源: 99
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功