面向对象
- 语言
- 面对对象的基本概念
- 面向对象
- 对象
- 类
- 总结
- 定义类
- 定义类
- 属性
- 方法
- 创建和使用对象
- 创建对象
- 使用对象
- 总结
- 示例
语言
语言:
汇编语言
解释性语言:
编程语言
高级编程语言:C语言
java、C++
Python
go
Scala
面对对象的基本概念
面向对象
Java语言是一种面向对象的语言。要使用Java进行面向对象的编程,首先要建立面向对象的思想。面向对象是一种直观而且程序结构简单的程序设计方法,它比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是有若干个对象组成,这些对象之间是独立的,但又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。
面向对象的三大特征:封装、继承和多态。
对象
对象是用来描述客观事物的一个实体。
类
类是具有相同属性和方法的一组对象的集合。类定义了对象将会拥有的特征(属性)和行为(方法)。
类与对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类给出它的全部对象的一个统一的定义,而它的每个对象则是符合这种定义的一个实体。因此类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。
总结
对象是由静态特征和动态特征构成。
静态特征:属性
动态特征:方法
类是具有相同特征的对象的集合(抽象)。
对象是类的实体。
类是对象的抽象,对象是类的具体实现。
面向对象分为:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。
定义类
面相对象设计的过程就是抽象的过程,一般分3步来完成。
(1)发现类,类定义了对象将会拥有的特征(属性)和行为(方法)。
(2)发现类的属性,对象所拥有的静态特征在类中表示时称为类的属性。
(3)发现类的方法,对象执行的操作称为类的方法。
定义类
定义类的语法格式如下:
[访问修饰符] class 类名{
//省略类的内部具体代码
}
访问修饰符如public、private等是可选的。
class是声明类的关键词。
按照命名规范,类名首字母大写。
属性
Java中类的内部主要包含属性和方法。对象所拥有的特征在类中表示时称为类的属性。定义属性的语法格式如下:
[访问修饰符] 数据类型 属性名;
访问修饰符是可选的。
除了访问修饰符之外,其他的语法的声明变量类似。
方法
对象执行操作的行为称为类的方法。
定义语法格式如下:
[访问修饰符] 返回类型 方法名称(参数类型 参数名1,参数类型 参数名2,…){
//…省略方法体代码
}
访问修饰符是可选的。
返回类型可以的void,在定义方法时,返回类型为void时表明没有返回值,方法体中不必使用“return”关键字返回具体数据,但是可以使用“return”关键字返回对应类型的结果,否则程序会出现编译错误。
小括号中的“参数类型 参数名1,参数类型 参数名2,…”称为参数列表。
当需要在方法执行的时候为方法传递参数时才需要参数列表,如果不需要传递参数就可以省略,不过小括号不可以省略,传递多个参数时,以半角的逗号进行分隔。
创建和使用对象
创建对象
类是一类事物的集合和抽象,代表这类事物共有的属性和行为。一个对象称为类的一个实例,是类一次实例化的结果。
类的对象可以调用类中的成员,如属性和方法等。
创建对象的语法格式如下:
类名 对象名=new 类型()
new是关键字。
左边的类名为对象的数据类型。
右边的类型()称为类的构造方法。
使用对象
在Java中,要引用对象的属性和方法,需要使用“.”。
使用对象的语法格式如下。
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
总结
方法:
无返回值的时候关注的重点是过程 -->存储过程
有返回值的时候关注的重点是结果 -->函数
无参方法的格式:
无返回值:
[访问修饰符类型] void 方法名(){
代码;
}
有返回值:
[访问修饰符类型] 返回值的类型 方法名(){
代码;
}
方法的调用:
无参方法直接用 对象名.方法名()调用即可
有参方法调用:调用的同时要接收
返回值类型 变量名=对象名. 方法名()
示例
示例一:
package kb09;
/**
* @Author
* @Date 2020/7/17
* @Description 学生类
* 属性:姓名、年龄、体重、身高
* 方法:学习、自我介绍
*/
public class Student {
String name;
int age;
double weight;
double height;
public void study(){
System.out.println("好好学习,天天向上!");
}public void show(){
System.out.println("我叫:"+name+",我今年"+age+"岁,身高:"+height+",体重:"+weight);
}
}
public class TextStudent {
public static void main(String[] args) {
Student hao = new Student();//对象的创建
//属性的赋值
hao.name="张浩";
hao.age=20;
hao.height=180;
hao.weight=180;
//方法的调用
hao.show();
hao.study();
输出结果:
示例二:
package kb09;
/**
* @Author
* @Date 2020/7/17
* @Description 学校类
* 属性:校名、地址、课程
* 方法:宣传、授课
*/
public class School {
String schoolName;
String address;
String subjesct;
public void advertisement(){
System.out.println("本校:" + schoolName + ",地址为:" + address + ",教授课程为:" + subjesct);
}public void teach(){
System.out.println("来是come去是gogo!!");
}
}
public class TextSchool {
public static void main(String[] args) {
School kgc = new School();
kgc.schoolName="课工场";
kgc.address="小行路2号警官学院内部";
kgc.subjesct="大数据";
kgc.advertisement();
kgc.teach();
System.out.println(kgc.schoolName);
}
}
输出结果:
示例三:编写学员类,输出学员相关信息
编写教员类,输出教员相关信息
public class Xueyuan {
String name;
int age;
String banji;
String aihao;
public void xuexi(){
System.out.println("姓名是:" + name + ",年龄是:" + age + ",就读于:" + banji + ",爱好是:" + aihao);
}
}
public class TextXueyuan {
public static void main(String[] args) {
Xueyuan yuan=new Xueyuan();
="张浩";
yuan.age=10;
yuan.banji="51班";
yuan.aihao="篮球";
yuan.xuexi();
}
}
输出结果:
public class JiaoYuan {
String name;
String zhuanye;
String kecheng;
int age;
public void jiao(){
System.out.println("姓名是:"+name+",专业方向:"+zhuanye+",教授课程:"+kecheng+",教龄:"+age);
}
}
public class TextJiaoYuan {
public static void main(String[] args) {
JiaoYuan jiao=new JiaoYuan();
jiao.name="张老师";
jiao.zhuanye="计算机";
jiao.kecheng="使用Java语言理解程序逻辑";
jiao.age=5;
jiao.jiao();
}
}
输出结果:
示例四:一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出。
/**
* @Author
* @Date 2020/7/17
* @Description 游客类
* 属性:姓名、年龄
*/
public class Visitor {
String name;
int age;
}
/**
* @Author
* @Date 2020/7/17
* @Description
*/
public class Park {
Visitor visitor;
final int Price=100;
void sellTicket(){
int age = visitor.age;
//60岁以上,免票,22岁以下半票,其余的全票
if(age>60){
System.out.println("滴,老年卡,"++"您需要支付"+0* Price);
}else if(age<22){
System.out.println("滴,学生卡,"++"您需要支付"+Price/2);
}else {
System.out.println("滴,普通卡,"++"您需要支付"+Price);
}
}
}
/**
* @Author
* @Date 2020/7/17
* @Description
*/
public class TestTour {
public static void main(String[] args) {
Visitor v=new Visitor();
="张浩";
v.age=20;
Park p=new Park();
p.visitor=v;
p.sellTicket();
}
}
输出结果:
示例五:模拟实现用户密码管理:输入旧的用户名和密码,如果正确,方有权限更新;从键盘获取新的密码,进行更新。
import javax.jws.soap.SOAPBinding;
import java.util.Scanner;
/**
* @Author
* @Date 2020/7/17
* @Description
*/
public class User {
String username="admin1";
String password="111111";
void changePwd(){
Scanner sc=new Scanner(System.in );
System.out.print("请输入用户名:");
String name=sc.next();
System.out.println("请输入密码:");
String pwd=sc.next();
if(name.equals(username)&&pwd.equals(password)){
//用户名和密码都正确,可以修改密码
System.out.println("请输入新的密码:");
password=sc.next();
System.out.println("修改密码成功,您新密码为:"+password);
}else{
System.out.println("用户名和密码不正确,您没有权限修改密码!");
}
}
public static void main(String[] args) {
User user=new User();
user.changePwd();
}
}
输出结果: