鱼C论坛

 找回密码
 立即注册
查看: 2674|回复: 2

[学习笔记] Java暑期学习Day10

[复制链接]
发表于 2017-7-14 23:42:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第十天,希望能坚持下去

封装(目的就是隐藏对象细节)
OOP三大特性——封装、继承、多态
①概念:a.将方法和字段一起包装到一个单元中,单元以类的形式实现。
        b.信息隐藏(使用访问修饰符),隐藏对象的实现细节,不让外部直接访问到。
         ..对模块的任何实现细节所做的更改不会影响该模块的代码
           ..防止用户意外修改数据

           ..是模块易于使用和维护<可维护性>
        c.将数据和方法包装进类中,加上具体实现的隐藏,共同被称作封装,其结果是一个同时带有特征和行为的数据类型
Java语言提供了很多修饰符,主要分为以下两类:
a.访问修饰符(4种)
b.非访问修饰符(以下举例)
static 修饰符,用来创建类方法类变量。(adj.静止的; 静电的; 不变的; [物] 静力的;  
                                          n.静电; 静力学; [物]静电(干扰); 争吵;
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。


abstract 修饰符,用来创建抽象类抽象方法。(
adj.抽象的,理论上的; 难解的; 抽象派的; 茫然的;
                                               n.摘要; 抽象概念; 抽象派艺术作品; [化] 萃取物;
                                             vt.提取,分离; 转移(注意等); 概括,摘录; <婉辞>剽窃;

synchronized 和 volatile 修饰符,主要用于线程的编程。

(synchronized 同步的;
volatile   adj.易变的,不稳定的; (液体或油) 易挥发的; 爆炸性的; 快活的,轻快的; )

②Java支持4种不同的访问权限。
默认的,也称为 default,在同一包内可见,不使用任何修饰符。
私有的,以 private 修饰符指定,只在同一类内可见。
共有的,以 public 修饰符指定,对所有类可见。
受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。

方法继承的规则:
父类中声明为 public 的方法在子类中也必须为 public
父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,
不能声明为 private
父类中声明为 private 的方法,
不能够被继承


修饰符 当前类 同一包内子孙类 其他包
public
protected
default
private


③属性封装的实现:a.修改属性的可见性
                        b.对每个属性创建一对赋值setter和取值getter方法,用于公开对这些属性的访问接口
                        c.在赋值setter和取值getter方法中,根据需要加入对属性操作的限制



④封装方法的目的:a.隐藏方法实现细节(方法体),向外提供公开接口(方法头),以供安全调用
                        b.简化调用,方便修改维护
                        c.根据需要,可以私有化方法以供内部使用——帮助方法(helper)



  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 Teacher t=new Teacher();
  4.         //        t.name="TE";The field Teacher.name is not visible
  5.                 t.setName("TE");
  6.                 System.out.println(t.getName());
  7.                 t.setAge(12);
  8.                 System.out.println(t.getAge());
  9.                
  10.         }
  11.        
  12. }
  13. class Teacher{
  14.         private String name;
  15.         private int age;
  16.         public void setName(String tname){
  17.                 name=tname;
  18.         }
  19.         public String getName(){
  20.                 return name;
  21.         }
  22.         public int getAge(){
  23.                 return age;
  24.         }
  25.         public void setAge(int tage){
  26.                 if(tage<25){
  27.                         System.out.println("年龄较小~");
  28.                         age=25;
  29.                 }else{
  30.                         age=tage;
  31.                 }
  32.        
  33.         }
  34. }
复制代码

1. 在类中定义方法,void(方法名称前)表示不用返回值。
2. Java命名习惯中,方法名称前是小写。

评分

参与人数 1荣誉 +6 鱼币 +6 收起 理由
小甲鱼 + 6 + 6 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-14 23:54:14 | 显示全部楼层
加油,你坚持学下去,我坚持看下去!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 01:41:36 | 显示全部楼层
小甲鱼 发表于 2017-7-14 23:54
加油,你坚持学下去,我坚持看下去!

  非常谢谢你,一直觉得行走在路上很茫然,不管是哪方面,偶有的支持真的是生命最大的慰藉。之前通过你的教学视频来学习数据结构,后来就发现了这个论坛,觉得很温暖。
  我会坚持下去的,生命不息,奋斗不止!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表