Java学习(面向对象)

一直说学习需要总结,需要写博客,自己懒=.= 一直没写。记录一下自己学习的知识和问题吧。

我已经看过视频学过javase了 写这个博客是在重新看书记录每天所学 做一个总结和记忆吧。也是对基础的重新巩固。视频看得多了 基础知识会比较薄弱 所以重新看书。


java是面向对象语言,对一个类的定义 包含三种最常见的成员:构造器,成员变量,方法。

注意:方法 成员变量 构造器 必须依赖类的存在才存在。

例如

public class Demo

{

String str="构造器,成员变量,方法"; //此行为一个String类型的 变量名为str的成员变量str

int a;

public Demo() //这里是一个Demo的对象的构造器 当使用Demo d=new Demo() ;时 可以理解为此构造器返回了一个Demo的对象d。此构造器内什么都没有写 

//即默认什么都没干 如果在一个类中 并没有写构造器 则java会自动增加一个默认构造器 即这个没有参数的构造器,此构造器不写也行。

{

}

public Demo(int a) //这里的构造器需要一个int 类型的参数a,当我们使用这个构造器来创建对象时,如下 Demo d2=new Demo(2); 就需要这个int类型的2 进行初始化。

{

this.a=a; //这里涉及到this的用法 见注释1        @注释1

}

public Demo(int a,String str2) //这里的构造器需要int类型的参数a和String类型的str2 例:Demo d3=new Demo(2,"这个构造器创建的对象会对他的成员变量str进行修改");

{

this(a); //这里使用了我们上面一个构造器 也使用了this。 

this.str=str2; //这里将本来的成员变量str重新赋值为str2;

}


public void sop(Demo d) //这里写了一个方法 为public权限 无返回值 方法名为sop的方法 需要传递一个Demo对象。@注释2 涉及到修饰符,见注释2

{

System.out.println("str ="+d.str+"__"+"a="+str.a); 这里打印Demo类的d对象的str和a成员变量

}

public void sop(String str,int a)

{

System.out.println("str="+str+"__a="+a); //这里又写了一个同方法名的sop方法 唯一的区别是参数不同,这样的叫重载。

}


}

对于这个类我们需要了解构造器写法 成员变量的位置 以及方法的写法还有this的用法 重载。对于类在内存中的样子 会单独写一篇 。


/*注释1 this的用法 :

构造器中引用该构造器正在初始化的对象

在方法中引用调用该方法的对象

*/


/*

注释2 修饰符

分为public final abstract    

public:如果使用此修饰符 则修饰的方法最“不要脸“ 只需要创建一个此方法的对象就可以被随意调用 (开了个玩笑).

final:字面意思为最后的 它修饰的话 则意味着不能被继承 更改。

abstract:字面意思为抽象 还没有看到=.= 后面再说。 

*/

 


面向对象语言有三个面向对象的特征 分别是:封装 继承 泛型。


封装:封装的优点很多 首先我解释一下封装的含义,简单来说,就和你的电脑一样  电脑设计时 对于用户来说 只需要暴露键盘,鼠标给用户使用就行,而内部的主板,显卡,cpu,散热器则用机箱封装起来,不让这些暴露给用户,因为对于用户来说 我只需要能用鼠标点,用键盘敲来上网,玩游戏等实现这些目标就行。主板,显卡,cpu等就是封装起来的,不需要用户关注的地方。

那么怎么使用封装呢?必须说一下访问控制符了  java中提供了3个访问控制符外加一个不加任何访问控制符的访问控制级别 见下图。


 private defaultprotectpublic
同一个类√ 
同一个包 
子类中  
全局中   

这里我写一个Test类和一个TestDemo类来展示一下封装

public class Test

{

private int x; //这里我用private来修饰x 对照上面的表格 这个int类型的x只能在这个类中调用 其他类中就算创建了一个这个对象 也无法直接操作这个变量。



public Test()

{

x=5;

}

public void setX(int x) //这里给了一个公开的方法 我想更改这个对象的x的话 就可以调用这个方法更改这个x。

{

this.x=x;

}

public int getX()     //调用这个方法可以得到这个对象的x值。

{

return x;

}

}

public class TestDemo

{

public static void main(String[] args)

{

Test t=new Test();

System.out.println(t.x); //打印对象t的x

t.setX(10); //设置t 的x为10

System.out.println(t.getX()+" "); //打印t 的x

}

}


继承:通过关键词extends实现 

class father

{

public void sop()

{

System.out.println("这是父类");

}

}


class son extends father

{

public void sop()

{

super.sop(); //调用父类的sop方法

}

public void sop(String s)

{

System.out.println(s); 重写了父类的sop方法。

}


}

未完待续。。。

//没想到写博客需要那么久的时间(= =)|||

 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值