Java面向对象主要知识点总结以及简单项目心得

1.      面向对象

java是一种面向对象的语言。也就是说,这种程序设计,把现实中的所有的问题都当做一个个对象来解决,每个对象都有其独立的属性和方法,每个对象之间具有一定的联系,在面向对象设计编程中,不需要考虑对象的实现细节,每个对象都有自己的任务和功能。例如:

public class A{

                         inta=2;

                         publicvoid ShowA(){

                                        System.out.println(a);

                         }

}

A是一个对象,这个对象有属性a=2,方法ShowA()。这个类有独立的属性,而且可以实现某些功能(打印a的值)。详细的面向对象的理解可以百度一下,我感觉代码敲多了也可以加深对面向对象的理解。

2.   构造函数

用户自己创建的类默认都会有一个无参的构造函数,例如上面的类A,他的构造函数是:public  A(){

}

注意:默认的构造函数是无参的,如果你对构造函数进行重载,则会覆盖掉默认的构造函数,你如果还想使用默认的构造函数,需要自己添加一个无参构造函数;构造函数无返回值类型。详细讲解百度“Java构造函数”。

3.   ==equals

     简单记就是==比较地址,equals比较内容。

     具体为: 1. 如果是基本类型比较,那么只能用==来比较,不能用equals 

                     2.对于字符串类型变量比较,==比较的是该变量在内存中的首地址,equals比较的是变量的内容

                     3.对于非字符串类型的变量来说,==equals比较的都是变量在内存中的首地址

     注意:equals 方法是 java.lang.Object 类的方法,对于String类型,equals已经默认对该方法进行了重写,所以可以直接用equals比较String类型变量的内容;当我们想比较我们自己所创建的类中的值时,则需要我们自己重写equals

4.   方法的重载和重写

a.方法的重载:在同一个类中,对该类中某一功能的不同实现;重载的方法名相同,但是参数不同。例:

public class A{

                         inta=2;

                         publicvoid ShowA(){             //方法一

                                        System.out.println(a);

                         }

                         publicvoid ShowA(int a){       //方法二

                                        System.out.println(a*2);

                         }

}

例子中的两个方法方法名字是相同的为ShowA,只是形参不同,两个方法实现的功能是不同的。这样在调用该类中ShowA方法时,只需要调整形参就可以根据需要实现这两个不同的方法。

对构造方法的重载原理是一样的,举一个构造方法重载的应用例子:

public class A{

         public A(inta){

                         this.a=a;

}

                         inta=2;

                         publicvoid ShowA(){

                                        System.out.println(a);

                         }             

}

传值的应用:在实例化类时A demo=new A(6);括号内加入实参,便可以将值传入类A中,即对类A进行了初始化,使类A中变量a的初始值等于6

引申:1.传值只是构造函数重载的一个简单应用,别的应用可以百度。

         2.介绍另一种传值方法:在类中定义静态变量的方法

                         publicclass A{

                         inta=2;

                         publicvoid ShowA(){

                                        System.out.println(a);

                         }

}

         如果你想在别的类中使用上面的类A中的变量a,可以在A中定义一个静态变量,在别的类中便可以直接使用了,如下:

public class A{

                         public static int b;

                         int a=2;

                         b=a;

                         publicvoid ShowA(){

                                        System.out.println(a);

                         }

}

这样你可以再别的类中直接通过形如A.b的形式调用类A中的变量astatic表示全局或者静态的意思,用public修饰后其他类就可以自由调用该变量。其实还有静态方法,这里就不扯了,你可以百度“Javastatic”。
b.方法的重写:方法重写发生在具有继承关系的两个类中,子类中重写的方法与父类的该方法方法名相同,返回值类型相同,参数相同,只是内部方法的实现不同(即用相同的变量,干不同的事)

5.   项目

我只拿我做的那一部分举例。我做的是学生密码的修改。我的思路是这样的:

要修改学生密码,就需要修改数据库中保存密码的表里的信息(该表为LoginInf),则我需要两个数据——作为主键的学号ID和要修改的密码pwd。在对数据库操作的方法里需要这两个数据,我就通过实体类传入数据到该方法里,步骤如下:

1.   因为已经想好需要的数据,所以我先写的实体类,实体类中有变量IDpwd,并重载了构造函数以便第二步传入数据。

2.   对实体类进行实例化,然后将从文本框中获得的IDpwd以实参的方式传入实体类:比如操作界面代码为LoginInf s=newLoginInf(ID,pwd);

        实体类可以这样重载构造函数:String id;

                                                         Stringpwd;//这是实体类中定义的变量

                                                         publicLoginInf(String id,String pwd){

                                                                setId(id);

                                                                setPwd(pwd);

                                                         }

这样,实体类中的值便的到了初始化,即把操作界面获得的IDpwd传入了实体类中

3.   在对数据库操作的方法中(这是单独的一个类,我定义的类名为ChangePwd),实例化实体类,“把需要的数据拿过来”。方法名是这样写的

public static boolean ChangePwd(LoginInf li)

这样,你就可以通过形如li.getId();li.getPwd();来获得想要修改的数据,把他用到对数据库的修改上

流程如下图:


 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值