一、理解什么是类和对象
万事万物皆对象
1、属性——对象具有的特征(特点)
2、方法——对象可执行的操作(能干什么事)
3、对象的定义:
是一个客观存在的,看的见或摸得着的实体,由属性和方法构成
4、类是由对象抽象出来的,看不见也摸不着
5、类和对象的关系?
类(是笼统)是模子是对象的抽象化,对象(具体的)是类的具体化
String schoolName; //中心名称 int classNumber; //教室数目 int labNumber; //机房数目 //定义北大青鸟中心的方法 public void showCenter(){ System.out.println(schoolName+" 培训中心 "+"配备:"+classNumber+"教"+labNumber+"机"); }
public static void main(String [] args){ No1 center=new No1(); System.out.println("***初始化成员变量后***"); center.showCenter(); center.schoolName="北京远航"; //给schoolName属性赋值 center.classNumber=10; //给classNumber属性赋值 center.labNumber=10; //给labNumber属性赋值 System.out.println("***初始化成员变量后"); center.showCenter(); }
二、封装——包装
1、2种表现形式:属性和方法
2、封装的作用:
隐藏内部实现的细节,使之操作简单方便
3、java中体现的封装:
类——所有的java代码在类中(方法)编写
MyEclipse工具以项目的形式,封装
三、会创建和使用对象
1、创建类的语法
访问修饰符 class 类名{
属性;
public void 方法名(){
//循环结构、条件判断(if、switch)
//输出语句
}
}
2、创建对象
类名 对象名=new 类名();
Scanner input=new Scanner(System.in);
如何调用属性和方法?
成员变量(属性名),通过:对象名.属性名;
方法,通过:对象名.方法名();
利用面向对象做一个简单计算机
double a; double b; char yun; public void suan(){ switch (yun){ case '+': System.out.println(a+"+"+b+"="+(a+b)); break; case '-': System.out.println(a+"-"+b+"="+(a-b)); break; case '*': System.out.println(a+"*"+b+"="+(a*b)); break; case '/': if (b!=0){ System.out.println(a+"/"+b+"="+(a/b)); }else{ System.out.println("除数不能为0!"); } break; } }
public static void main(String [] args){ No7 s=new No7(); Scanner input=new Scanner(System.in); System.out.print("请输入第一个数"); s.a=input.nextDouble(); System.out.print("请输入第二个数 "); s.b=input.nextDouble(); System.out.println("请输入运算符(+、-、*、/)"); s.yun=input.next().charAt(0); s.suan(); }
面向对象
类——名词
属性——形容词
方法——动词
1、类之间的通信(访问):在一个类中new出另外一个类的对象,通过对象名.类的成员名
类的成员:属性(成员变量)、方法(成员方法)
2、优点:
信息封装和隐藏,
提高程序的安全性、可重用性、可维护性
五、调试
1、设置断点
2、启动调试
3、按F6逐行执行程序
遇到【方法】,调试方法中的代码,按F5
步骤1:编写类(属性、方法)
属性不在该类中赋值
方法,输出该属性的值
步骤2:新建有main的类(测试类)
步骤3:
创建步骤1的类的对象
对象名.属性=值;(从控制台赋值)
对象名.方法名();//将属性的值输出
/** 旧姓名*/ String oldName; /** 旧密码*/ String oldMi; /** 新姓名*/ String name; /** 密码*/ String passwords; /** 新密码*/ String newPasswords; /** 输出帐号的show方法*/ public void show(){ Scanner input=new Scanner(System.in); boolean f=false; /**利用循环进行判断 */ do{ System.out.print("请输入姓名:"); name=input.next(); System.out.print("请输入密码:"); passwords=input.next(); /** */ if (name.equals(oldName)&&passwords.equals(oldMi)){ System.out.print(" 请输入新密码"); newPasswords=input.next(); System.out.println("密码修改成功!新密码为:"+newPasswords); f=true; break; }else{ System.out.println("密码输入错误!您没有权限更改密码。"); break; } }while (f==true); }
public static void main(String [] args){ Scanner input=new Scanner(System.in); No11 d=new No11(); d.oldName="admin1"; d.oldMi="1111"; d.show(); }