您的位置:首页 > 编程语言 > Java开发

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

2015-10-12 22:53 591 查看
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){
 
bf64
; 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中的变量a。static表示“全局”或者“静态”的意思,用public修饰后其他类就可以自由调用该变量。其实还有静态方法,这里就不扯了,你可以百度“Java中static”。

b.方法的重写:方法重写发生在具有继承关系的两个类中,子类中重写的方法与父类的该方法方法名相同,返回值类型相同,参数相同,只是内部方法的实现不同(即用相同的变量,干不同的事)

5. 项目
我只拿我做的那一部分举例。我做的是学生密码的修改。我的思路是这样的:
要修改学生密码,就需要修改数据库中保存密码的表里的信息(该表为LoginInf),则我需要两个数据——作为主键的学号ID和要修改的密码pwd。在对数据库操作的方法里需要这两个数据,我就通过实体类传入数据到该方法里,步骤如下:
1. 因为已经想好需要的数据,所以我先写的实体类,实体类中有变量ID和pwd,并重载了构造函数以便第二步传入数据。
2. 对实体类进行实例化,然后将从文本框中获得的ID和pwd以实参的方式传入实体类:比如操作界面代码为LoginInf
s=newLoginInf(ID,pwd);
实体类可以这样重载构造函数:String id;
Stringpwd;//这是实体类中定义的变量
publicLoginInf(String id,String pwd){
setId(id);
setPwd(pwd);
}
这样,实体类中的值便的到了初始化,即把操作界面获得的ID和pwd传入了实体类中
3. 在对数据库操作的方法中(这是单独的一个类,我定义的类名为ChangePwd),实例化实体类,“把需要的数据拿过来”。方法名是这样写的
public static boolean ChangePwd(LoginInf li)
这样,你就可以通过形如li.getId();li.getPwd();来获得想要修改的数据,把他用到对数据库的修改上
流程如下图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面向对象