QQ登录

只需一步,快速开始

搜索
鱼C论坛笔记大赛成绩公示
查看: 140|回复: 2

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

[复制链接]
最佳答案
2 
累计签到:43 天
连续签到:1 天
发表于 2017-7-14 23:42:07 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

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 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
147 
累计签到:2187 天
连续签到:2 天
发表于 2017-7-14 23:54:14 | 显示全部楼层
加油,你坚持学下去,我坚持看下去!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
2 
累计签到:43 天
连续签到:1 天
 楼主| 发表于 2017-7-15 01:41:36 | 显示全部楼层
小甲鱼 发表于 2017-7-14 23:54
加油,你坚持学下去,我坚持看下去!

  非常谢谢你,一直觉得行走在路上很茫然,不管是哪方面,偶有的支持真的是生命最大的慰藉。之前通过你的教学视频来学习数据结构,后来就发现了这个论坛,觉得很温暖。
  我会坚持下去的,生命不息,奋斗不止!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-9-26 09:49 Powered by Discuz! X2.5 Theme by dreambred

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