2016-11-17 继续努力

1.封装

封装是为了保护内部数据不被修改,不过可以调用set和get来方便外界调用,这点和c#很像,下面来看代码

public class Time {
    private int hour;
    private int minute;

    public int getHour() {
        return hour;
    }

    public void setHour(int hour) {
        if (hour > 24 || hour < 0) {
            System.out.println("输入有误");
        } else {
            this.hour = hour;
        }
    }

    public int getMinute() {
        return minute;
    }

    public void setMinute(int minute) {
        if (minute > 60 || minute < 0) {
            System.out.println("输入有误");
        } else {
            this.minute = minute;
        }
    }
}

值得一提的是,set方法如果有误可以直接输出结果,并不需要syso,例如

t.setHour(25);------------>console输出文字"输出有误"
t.setMinute(61);------------>console输出文字"输出有误"

2.继成

父类也可以成为超类和基类,子类也可以称为派生类

子类可以继承父类的方法,也可以对其进行改写关键字为extends

public class ClassName extends FClassName(){};

super()

  在调用子类构造器的时候,如果没有显示的写出super,那么编译器会默认加上super()无参构造器

  如果想调用父类的有参的构造器,那么就必须显示的调用,编译器不会默认加上的

  创建子类对象的过程就是从底层的基类开始往上,一层层地调用构造方法

  注意:super()必须放在语句的第一句

  代码如下(先大概了解一下,后期实践逐渐加深理解)

public class A {
    A() {
        System.out.println("调用A的无参构造方法");
    }

    A(int i) {
        System.out.println("调用A的有参构造方法");
    }
}

class B extends A {
    B() {
        System.out.println("调用B的无参构造方法");
    }

    B(int i) {
        super(i);
        System.out.println("调用B的有参构造方法");
    }
}

class C extends B {
    C() {
        System.out.println("调用C的无参构造函数");
    }

    C(int i) {
        super(i);
        System.out.println("调用C的有参构造函数");
    }
}

3.多态

多态目前还不是很清楚其作用和意义,简单的说一下,就好比老虎可以当作动物也可以当作老虎,感觉挺怪.....,还是上代码吧

public class Test {
    public static void main(String[] args) {
        Animal t = new Tiger();
        Animal d = new Dog();
        Animal c = new Animal();
        // ShowMe里面的内容可以进行变换
        ShowMe(t);

    }

    public static void ShowMe(Animal a) {
        a.showme();
    }
}

*eclispe快捷键小技巧:

  如果有很多属性需要设置get和set则在source->generate getters and setters中勾选生成

  如果涉及的属性较少或者只需要get或者set其中一个方法时,则输入get/set----->alt+/---->选择对应的属性名即可

  另外选择需要生成set/get的属性,ctrl+1,选择create setters and getters for "xxx",即可快速生成对应的set/get方法

  再者还可以使用alt+shift+s可以调出set/get选项,然后操作同第一种一样,确定即可

  

时间: 2024-10-18 08:40:37

2016-11-17 继续努力的相关文章

2016/11/17

1.单例设计模式 (1)懒汉模式 1 public class Singleton { 2 3 private Singleton() {} 4 private static Singleton singleton = null; 5 // 这里可以加同步锁解决线程安全问题 6 public static Singleton getInstance() { 7 if(singleton == null) { 8 singleton = new Singleton(); 9 } 10 return

2016.11.17作业

附加作业: 1 #include<stdio.h> int main() { int a,b,c,d; double sum,p; printf("Input 4 number:"); scanf("%d%d%d%d",&a,&b,&c,&d); sum=a+b+c+d; p=sum/4; printf("和=%.lf 平均值=%.1f",sum,p); return 0; } 2 #include&l

每周进度及工作量统计——2016.11.24-2016.11.30

项目:连连看游戏 项目类型:四人小组项目 小组名称:天天向上 小组成员:王森.张政,张金生,栾骄阳 项目改进:final版本研发和维护 项目预期时间:2016.9.10-2016.12.8 2016.11.26-2016.11.27 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 讨论  13:24  13:43  0  19  20   设计  13:43  14:04  0  21  30 编码 功能优化  14:46  16:51  26  99  120 文档

2015.11.17 新起点,出发。

今天注册了博客,要开始认真仔细的学习前端技术了.这个博客将作为我学习进度记录.学习笔记整理.心得体会整理等书写记录的工具. —希望苍天不负有心人 2015.11.17

2016.11.18多态

下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 结论: java中基类对象不能当做子类对象使用,需要用强制转换来实现,子类对象变量=(子类名)基类对象名:错误的代码是d=m; d=c; 1.   左边的程序运行结果是什么?2.   你如何解释会得到这样的输出?3.   计算机是不会出错的,之所以得到这样的运行结果也是有原因的,那么从这些运行结果中,你能总结出Java的哪些语法特性? 运行结果截图: pu

11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机

11.14/11.15 Apache和PHP结合 编辑:httpd主配置文件/usr/local/apache2.4/conf/httpd.conf 去掉#号 将php7加# Telnet IP+80 端口不通,需要开启iptables防火墙 更改require 更改配置后需要操作才能生效 重新加载服务 增加一行php进行解析 页面显示 结果访问的是源代码 如果遇到php无法解析,需要检查相关的apache的配置文件 (1)检查apache的php 有没有加载php5 查看是否有libphp5.

每周进度及工作量统计——2016.11.10-2016.11.16

项目:连连看游戏 项目类型:四人小组项目 小组名称:天天向上 小组成员:王森.张政,张金生,栾骄阳 项目改进:beta阶段结束,进入总结个final版本研发和维护 项目预期时间:2016.9.10-2016.11.24 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 讨论  13:44  14:01  0  17  20   设计  14:01  14:16  0  15  40 编码 功能优化  14:16  16:47  12  139  120 文档 程序说明

挨踢周刊2016/11/16

2016年11月16日至18日,第三届世界互联网大会在浙江乌镇举办,中共中央总书记.国家主席习近平在开幕式上发表视频讲话.马化腾.马云.李彦宏.雷军.丁磊.周鸿祎.曹国伟.王小川.沈南鹏.杨元庆.张亚勤和刘强东等国内互联网巨头领军人物悉数到场参加. 2016年"双11"是阿里巴巴在美国上市后的第三个网购狂欢.北京时间周五凌晨,在亿万剁手党的共同努力下,"双11"开场后,成交额仅用6分58秒就突破100亿元大关,2015年为12分28秒:此后成交额一路攀升,最终在24

2016/1/18 更正补充 2016/1/17 矩形面积 1,构造方法初始化 长和宽 ,2, 定义成员方法求矩形面积

1 package caipiao; 2 3 import java.util.*; //引入java工具.util是utiliy的缩写,意为多用途的, 4 // 工具性质的包 这个包中主要存放了:集合类(如ArrayList,HashMap等), 5 //随机数产生类,属性文件读取类,定时器类等类. 6 public class JuXing1 {//这些类极大方便了Java编程,日常java编程中,经常要用到这些类. 7 //属性 8 private double chang; //私有化

ACM-南京理工大学第八届程序设计竞赛-网络赛(2016.04.17)

A.偷吃糖果Time Limit: 1000Ms Memory Limit: 65536KB Description小鱼喜欢吃糖果.他有两盒糖果,两盒糖果分别仅由小写字母组成的字符串s和字符串t构成.其中'a'到'z'表示具体的某种糖果类别.他原本打算送给他喜欢的女生,但是要送给女孩子的话两盒糖果不能有差别(即字符串s和t完全相同).所以,他决定偷吃几块,他吃糖果的策略是每次选出一盒糖果中两个连续的同种类别的糖果,然后吃掉其中一块.该策略可以使用多次.例如一盒糖果是'rrrjj',他可以把这盒糖