JAVA和面向对象的简单介绍(入门篇)

一:类基本知识
1.类和对象的关系:
类是创建对象的模板,定义了通用于一个类的所有对象的属性和方法,类中的属性赋予确定的值便得到该类的一个对象。
对象是类的实例。
2.类是一种数据类型,被称为对象类型。可以使用类名声明对象变量。
3.类属性和操作:
类的属性:类的属性描述对象特征,从属于某类对象的属性是用变量表示的,成为类的成员变量
类的操作:类操作是对类属性的处理,操作是类的特征(和属性是对象特征相区分),操作包括获取属性值,给属性赋值等操作。

二:UML类图:
4.UML类图中,访问权限的控制包括:”-“:private,”+”public,”~”friendly, “#”protected。
比较特殊的两种类的写法:
1)抽象类,抽象类可以用斜体或者在类名后注明{abstract}
2)接口,在类名之前注明

<<interface>>

5.UML类图中的常见关系:
5.1.依赖关系,使用虚线箭头表示(依赖类指向目标类)。依赖关系是一种最弱的关系,仅仅是发生一些简单的交互,具有瞬时性
5.2.关联关系,比依赖关系更强。这里涉及到关联三要素:关联的方向,数量,属性。
关联使用单实线表示。
方向:单向箭头,关联方指向被关联方,双向纯实线。
数量:常见的几种数量表示方式:
具体数字:具体数字
*或0..*:任意自然数
0..1:0或1
1..*:1到任意多个
5.3.聚合关系
分为两种,basic aggregation(聚合的两个类不存在依赖)使用空心菱形加实线表示,菱形在整体这边。
composition aggregation(聚合的两个类存在依赖)使用实心菱形加实线表示,菱形在整体这边。
(实际上更通用的说法是,basic aggregation翻译为聚合,composition aggregation 翻译为组合)
注意聚合意味着不存在回路,和关联可指向自身有着本质上的不同。
5.4.继承
使用实线加空心箭头表示,箭头指向被继承的类(父类)
5.5.实线
当关系中存在一边为接口,一遍为类时才可使用,用虚线加空心箭头表示,箭头指向接口。

三:JAVA部分:
1.Java对象创建的内存分配:
例如:

String a;//语句1
a=new String("正哥最帅");//语句2

当执行到语句1时,JVM在栈内存中分配一个位置,此时该位置的值还为空。
当执行到语句2时,JVM先是在堆内存中分配了空间并存了”正哥最帅”对应的字符,并且把分配到的地址传给a。
和C/C++的指针很类似,在Java中,我们称为Java引用。
变量的实质是一小块内存单元,存储着变量的值,例如 int a=1(注意int是基本数据类,如果不是基本数据类,变量只能指向对象,存储对象的地址,而不能直接存储值)。当变量指向一个对象时,这个变量就成为引用变量,此时a的值为他所引用对象的地址。
2.static:
static意为静态的,当变量声明加了static,就意味着这个变量不再是实例变量,而成为了类变量(静态变量),相应的,当方法声明时加了static,就意味着这个方法不再是实例方法,而成为了静态方法。
注意一些限制:
1)静态方法只能调用静态方法和静态变量。
2)构造方法不能加static。
3.方法重载和覆写:
重载指具有相同的方法名,但是参数的类型或个数可能不同,返回值也可能不同,传入不同参数时就会调用同名的不同方法,重载是类中多态的体现
覆写产生于子类继承父类时也继承了父类的方法。但是很多时候我们希望在父类的方法中做一些修改,这时候就需要子类覆写父类的方法。覆写是子类和父类多态的体现。
4.Java访问权限控制:
1)public:所有类可以访问。
2)friendly(default):本包中的所有类可以访问。
3)protected:本包中的所有类以及子类可以访问。
4)private:仅本类可以访问。
注意:private和protected不能拿来修饰类。类中friendly倾向于使用无修饰定义。
5.控制台读写:
首先先介绍介质流和过滤流:
介质流:可以认为是提供数据的流
过滤流:可以认为是处理数据的流
下面是一个从控制台写入的流:

BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in))

其中System.In就是介质流,外面两层则为过滤流。
向控制台输出的流:

PrintWriter stdOut=new PrintWriter(System.out,true);

6.Java异常处理
异常处理结构
完整版为 try{}catch{}finally{}
finally可选。

catch关键字
当碰到异常时,JVM匹配第一个匹配的catch,并执行其中语句,在之后就执行最后一个catch之后的部分,捕获异常的顺序和不同的catch语句的顺序有关。
异常结构:
基类(Throwable)
继承自Throwable:Error和Exception
继承自Exception:RuntimeException和其他(比如IOExpectation)
注意RuntimeException不会在运行时检测。
7.遍历ArrayList的方法:
1)使用.get()和.size()方法
2)使用迭代器,例如:

Iterator<T> iterator=list.iterator();//前提是list实现了iterable接口
while(iterator.hasNext())
    result=iterator.next();

3)使用for-each循环
8.抽象类和接口的区别的区别和共同点:
抽象类可以实现方法也可以不实现方法,定义一个抽象类和抽象方法可以是:

public abstract class A{
    abstract void b();
}

接口不能实现方法。
抽象类可以定义实例变量,接口不行。
一个类只能继承自一个抽象类,但是可以实现多个接口。
抽象类和接口都不能调用构造方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值