一、面向对象的基本概念
1.面向对象
Java语言是一种面向对象的语言。要使用Java进行面向对象的编程,首先要建立面向对象的思想。面向对象是一种直观而且程序结构简单的编程设计方法,它比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是若干个对象的组成,这些对象之间是独立的,但又可以相互配合,链接和协调,从而共同完成整个程序要实现的任务和功能。
面向对象的三大特征:封装、继承和多态。
2.对象
对象是用来描述客观事物的一个实体。面向对象方法解决问题时,要对现实世界中的对象进行分析和归纳,找出哪些对象与要解决的问题是相关的。例如,奥迪跑车、宝马跑车、奔驰轿车、保时捷跑车,虽然这几个跑车都是对象。但是它们之间具有不同的特征。具体来讲就是品牌不同、价格不同、性能不同等。
3.类
刚才的几个跑车对象之间具有一些共同的特征,如都有轮子、门等;还有一些共同的行为,即都能发动、都能加速、都能制动等,把这些共同的特征和共同的行为组织到一个单元中,就得到了类。
二、面对对象编程
public class 类名{
//定义属性部分
属性1的类型 属性1;
...
属性n的类型 属性n;
//定义方法部分
方法1;
...
方法n;
}
创建对象
// 类名 对象名 = new 类名();
School school = new School();
引用对象
// 使用"."号进行操作
school.name = "初级中学"; // 给name属性赋值
school.showCenter(); //调用showCenter()方法
实例
编写一个学生类,他有姓名、年龄、班级、爱好属性,有一个自我介绍的方法
public class Student {
// 姓名
String name;
// 年龄
int age;
// 班级
String className;
// 爱好
String habbit;
// 自我介绍方法
void introduction(){
System.out.println("我叫"+name+",今年"+age+"岁,我就读于"+className+",喜欢"+habbit);
}
}
编写测试类TestStudent
public class TestStudent {
public static void main(String[] args) {
Student student = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("请输入姓名:");
student.name = sc.next();
System.out.println("请输入班级:");
student.age = sc.nextInt();
System.out.println("请输入班级:");
student.className = sc.next();
System.out.println("请输入爱好:");
student.habbit = sc.next();
student.introduction();
}
}
类的方法
方法可以分为有返回值和无返回值。在上述例子中,我们编写了一个introduction()方法,它是一个无返回值的方法
方法的格式:
无返回值:
[访问修饰符类型] void 方法名(){
代码;
}
有返回值:
[访问修饰符类型] 返回值类型 方法名(){
代码;
return 返回值;
}
实例
修改密码:但用户输入的密码与旧密码一致时可以修改,否则无法修改
// 编写User类
public class User {
String userName = "admin";
String oldPass = "123456";
void change(String newPass){
oldPass = newPass;
System.out.println("密码更新成功,您的新密码为:"+oldPass);
}
}
编写TestUser类
public class TestUser {
public static void main(String[] args) {
User user = new User();
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.next();
System.out.println("请输入密码:");
String pass = sc.next();
if(name.equals(user.userName)&&pass.equals(user.oldPass)){
System.out.println("请输入新密码:");
String newPass = sc.next();
user.change(newPass);
}else{
System.out.println("用户名密码不匹配!您没有权限更改密码!");
}
}
}