万物i皆对象
面向对象
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程强调的是功能、行为
面向对象:将功能封装进对象,强调具备了功能的对象
面向对象是基于面向过程的
面向过程例子:
把大象放进冰箱里分为以下步骤:把冰箱门打开;把大象放进去;关上冰箱门(强调过程和过程中所涉及的行为(强调行为、动作、过程))。
用面向对象思想考虑:无论是打开冰箱,放进大象,关闭冰箱,所有操作都是操作冰箱这个对象,所以只需要将所有功能都定义在冰箱这个对象上,冰箱上就有打开、存储、关闭得所有功能 。
由上可知,面向对象是一种思想,能让复杂问题简单化,程序员不需要了解具体的实现过程,只需要指挥对象去实现功能。例,面试官面试面试者就是面向对象的体现,面试官需要找具有编程功能的对象(面试者),而我就是一个具有编程功能的对象,面试完后,让面试者去编程,面试者就去实现编程功能。
特征:对象的属性
行为:对象的方法
类和对象
类:具有相同属性和方法的一组对象的集合
类是对象的抽象,对象是类的具体
//创建school类
public class School {
String schoolName; //中心名称
int classNumber; //教室数目
int labNumber; //机房数目
//定义北大青鸟中心的方法
public void showCenter(){
System.out.println(schoolName + "培训学员\n" + "配备:"
+ classNumber + "教" + labNumber + "机");
}
}
public class InitialSchool {
public static void main(String[] args) {
School center = new School();
System.out.println("***初始化成员变量前***");
center.showCenter();
center.schoolName = "北京中心"; //给schoolName属性赋值
center.classNumber = 10; //给classNumber属性赋值
center.labNumber = 10; //给labNumber属性赋值
System.out.println("\n***初始化成员变量后***");
center.showCenter();
}
}
//创建学生类和教师类
public class InitialStudent {
public static void main(String args[]){
Student student = new Student(); //创建对象
student.name = "张浩"; //给各个属性赋值
student.age = 10;
student.classNo = "S1班";
student.hobby = "篮球";
student.show(); //调用方法
}
}
public class InitialTeacher {
public static void main(String[] args) {
Teacher teacher = new Teacher(); //创建对象
teacher.name = "王老师"; //给各个属性赋值
teacher.major = "计算机";
teacher.courses = "使用Java语言理解程序逻辑";
teacher.schoolAge = 5;
teacher.show(); //调用方法
}
}
public class Student {
String name; //姓名
int age; //年龄
String classNo; //班级
String hobby; //爱好
public void show(){
System.out.println(name + "\n年龄:" + age + "\n就读于:" +
classNo + "\n爱好:" + hobby);
}
}
public class Teacher {
String name; //姓名
String major; //专业方向
String courses; //教授课程
int schoolAge; //教龄
//输出信息方法
public void show(){
System.out.println(name + "\n专业方向:" + major +
"\n教授课程:" + courses + "\n教龄:" + schoolAge);
}
}
import java.util.Scanner;
public class InitialVistor {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Visitor v = new Visitor(); //创建对象
System.out.print("请输入姓名:");
v.name = input.next(); //给name属性赋值
System.out.print("请输入年龄:");
v.age = input.nextInt(); //给age属性赋值
v.show(); //调用显示信息方法
}
}
import java.util.Scanner;
public class Visitor {
String name; //姓名
int age; //年龄
public void show(){
Scanner input = new Scanner(System.in);
while(!"n".equals(name)){
if(age>=18 && age<=60){ //判断年龄
System.out.println(name + "的年龄为:" + age +
",门票价格为:20元\n" );
}else{
System.out.println(name + "的年龄为:" + age + ",门票免费\n");
}
System.out.print("请输入姓名:");
name = input.next(); //给name属性赋值
if(!"n".equals(name)){
System.out.print("请输入年龄:");
age = input.nextInt(); //给age属性赋值
}
}
System.out.print("退出程序");
}
}
//方法二
/*
* 游客类
* */
public class Visitor {
//属性:姓名 年龄
String name;
int age;
//方法:根据不同年龄计算不同的门票价格
public void showPrice(){
if(age<=10){
System.out.println("门票免费");
}else if(age<=60){
System.out.println("门票全费:20元");
}else{
System.out.println("门票半价:10元");
}
}
}
import java.util.Scanner;
/*
* 测试:不同的游客,计算不同的票价
* */
public class TestVisitor {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String answer="";
do{
Visitor v1=new Visitor();
System.out.print("请输入姓名:");
v1.name=input.next();
System.out.print("请输入年龄:");
v1.age=input.nextInt();
v1.showPrice();
System.out.println("是否继续(y/n)?");
answer=input.next();
}while(answer.equals("y"));
System.out.println("程序结束!");
}
}
//用户密码管理
public class Administrator {
String name; //姓名
String password; //密码
//显示信息方法
public void show(){
System.out.println("姓名:" + name + ",密码:" + password);
}
}
import java.util.Scanner;
public class ChangePassword {
/**
* 更改管理员密码
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Administrator admin = new Administrator(); //创建管理员对象
admin.name = "admin1"; //给name属性赋值
admin.password = "111111"; //给password属性赋值
//输入旧的用户名和密码
System.out.print("请输入用户名:");
String nameInput = input.next();
System.out.print("请输入密码:");
String pwd = input.next();
//判断用户输入的用户名和密码是否正确
if(admin.name.equals(nameInput) && admin.password.equals(pwd)){
System.out.print("\n请输入新密码:");
admin.password = input.next(); //修改密码
System.out.println("修改密码成功,您的新密码为:" + admin.password);
}else{
System.out.print("用户名和密码不匹配!您没有权限更新管理员信息。");
}
}
}