构造方法

static 和 final 关键字

风流意气都作罢 提交于 2019-11-29 12:19:00
本人博客园链接 https://www.cnblogs.com/zongmin/p/11340334.html static关键字 静态变量 静态变量:又称做类变量,也就是这个变量属于整个类,而不属于单个实例。类所有的实例共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份,当系统第一次加载类时,系统为静态变量分配内存,直到该类不在使用,内存才会被回收,生命周期几乎等同于该类的生命周期。 实例变量:每创建一个实例就会产生一个实例变量,与该实例同生共死。 public class A { private int x ; //实例变量 private static int y ; //静态变量 public static void main ( String [ ] args ) { A a = new A ( ) ; //实例变量,只能通过实例来访问 System . out . println ( a . x ) ; //0 //静态变量属于类本身,所以既可以通过实例也可以通过类本身来访问 System . out . println ( a . y ) ; //0 System . out . println ( A . y ) ; //0 //更改静态变量和实例变量的值 a . x = 10 ; a . y = 5 ; A b = new A ( ) ; /

第三周课程总结&实验报告一

强颜欢笑 提交于 2019-11-29 11:48:18
一、第三周课程总结 1.这一周对象程序设计的学习更进了一步,我们先是加深了上次学习的封装性,接着又学习了java的多态性,以及了解了一下继承性,然后学习了构造方法,构造方法的格式如下: class 类名称{ 访问权限 类名称 (类型1 参数1 类型2 参数2,...) { 程序语句 ; ... //构造方法没有返回值 } } 由上可知构造方法名称必须与类名一致,构造方法声明处不能又任何返回值类型的声明,不能在构造方法中使用return返回一个值 2.this关键词,在程序中可以用this调用本类属性,比如遇到name=name;这种情况,name到底是属性还是构造方法的参数就很难让人知晓,所以这里就必须用到this关键词,如:this.name=name;从而明确表示为类中的name属性赋值;this不仅可以调用属性,还可以调用构造方法,但必须记住调用构造方法必须也只能放在构造方法的第一行,对于this调用构造方法的时候一定要留一个构造方法作为出口,即程序中至少存在一个构造方法是不使用this调用其他构造方法的;this还可以表示当前对象 3.static关键词,static的本意是共享,所以就由此得知static是可以声明属性,并且是共享的,而且static也可以声明方法 4.main()方法,严记格式:public static void main(String args[])

【类关系】继承关系

末鹿安然 提交于 2019-11-29 11:20:17
继承 概念 是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力。 格式 【访问权限修饰符】【修饰符】子类名 extends 父类名{子类体} 作用 提高了代码的复用性 提高了代码的维护性 让类与类产生了一个关系,是多态的前提 缺点 让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。 原则:低耦合,高内聚。 耦合:类与类的关系 内聚:自己完成某件事情的能力 打破了封装性 优点 Java中类只支持单继承 class Son exnteds Father {} //正确的 class Son extends Father,Mother {} // 错误的 Java中可以多层(重)继承(继承体系) 注意事项: 子类不能继承父类的私有成员 子类不能继承父类的构造方法,但是可以通过super去访问 不要为了部分功能而去继承 使用场景 继承体现的是:is a的关系。 采用假设法 如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承。 抽象 概念 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 格式 public abstract class 类名() { public abstract void show();//抽象方法没有花括号 } 特点

【接口】基础

泪湿孤枕 提交于 2019-11-29 11:20:10
定义 是一系列抽象方法的集合(是一种特殊的抽象类) 格式 public interface 接口名 extends 父类接口名列表 { public static final 常量 public abstract 抽象方法 } 特点 成员变量:静态常量(public static final) 构造方法:没有(所以接口不能被实例化) 成员方法:抽象方法(public abstract) 实现接口的类需重写接口的所有抽象方法,否则该类需声明为抽象类 原因:如果A同时继承B和C,而B和C同时有一个D方法,A无法确定该继承哪一个,而接口全都是抽象方法继承谁都可以 成员特点 成员变量 -只能是常量,并且是静态的。 -默认修饰符:public static final -建议:自己手动给出。 构造方法 -没有构造方法 成员方法 -只能是抽象的 -默认修饰符:public abstract -建议:自己手动给出。 所有的类都默认继承自一个类:Object。 类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。 作用 面向接口编程:在面向对象的系统中所有的类或者模块之间的交互式由接口完成的 来源: https://blog.csdn.net/hutuyaoniexi/article/details/100798151

javaSE面向对象2

*爱你&永不变心* 提交于 2019-11-29 11:14:58
1 继承 继承的概念 继承也叫传承,也就是自上而下的传递;当我们在描述某些事物的时候 发现 有些事物具有重复的属性和行为,那么 就可以将这些重复的东西进行抽取 组合成一个新的类别,这个新的类别称之为父类。 通过extends关键字可以实现类与类的继承: class子类名 extends 父类名{ } 继承的好处和弊端 提高了代码的复用性:多个相同的成员可以方法放到同一个类中; 提高了代码的为属性:如果功能的代码需要修改,修改一处即可; 让类与类之间产生了关系,是多态的前提:其实这也是继承的一个弊端,类的耦合性很强; 开发原则:低耦合,高内聚 耦合:类与类的关系; 内聚:就是自己完成某件事情的能力。 注意 和传统的理解不同,子类并不是父类的一个子集。实际上,一个子类通常比它的父类包含更多的信息和方法。 父类中的私有数据域在该类之外是不可访问的。因此,不能在子类中直接使用。但是,如果父类中定义了公共的访问器 / 修改器,那么可以通过这些公共的访问器 / 修改器来访问和修改它们。 不是所有的 “是一种”(isa) 关系都该用继承来建模。例如:正方形是一种矩形,但是不应该定义一个 Square 类来扩展 Rectangle 类,因为 width 和 height 属性并不适合于正方形。应该定义一个继承自 CeometricObject 类的 Square 类,并为正方形的边定义一个

JAVA 通过 Socket 实现 TCP 编程

99封情书 提交于 2019-11-29 11:11:40
简介 TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向 连接的 、 可靠的 、 基于字节流 的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层 传输层 所指定的功能,用户数据报协议(UDP,下一篇博客会实现)是同一层内 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。 JAVA Socket简介 所谓socket

多态中成员访问特点

£可爱£侵袭症+ 提交于 2019-11-29 10:12:40
package day8; public class Polymorphyic { public static void main(String[] args) { Fruit f = new apple(); System.out.println(f.num);//成员变量运行看左边,输出父类 num,“10” apple a = new apple(); a.print();//成员方法看右边,输出子类 print(),“子类构造方法” } } class Fruit{ int num=10;//父类成员变量 public void print(){ System.out.println("父类构造方法"); } } class apple extends Fruit{ int num=20;//子类成员变量 public void print(){ System.out.println("子类构造方法"); } } 运行结果: 10 子类构造方法 总结: 成员变量:编译看左边父类,运行看 左边 父类 成员方法:编译看左边父类,运行看 右边 子类 来源: https://www.cnblogs.com/time123/p/11512987.html

Java:Java快速入门

泪湿孤枕 提交于 2019-11-29 06:49:28
链接地址: http://www.cnblogs.com/happyframework/p/3332243.html 你好,世界! 源代码组织方式 Java程序由package+class组成,package对应目录的相对路径,class对应文件,如 E:\Workspaces\MyEclipse 10\JavaStudy\src\com\happyframework\javastudy\hello\Hello.java 1 package com.happyframework.javastudy.hello; 2 3 public final class Hello { 4 public static void hello(){ 5 System.out.println("hello!"); 6 } 7 } 关于class有如下几点规则: 文件的名字必须和class的名字一致(public级别的class名字)。 文件必须只包含一个public访问基本的class(可以包含多个非public级别的class)。 package名字必须和目录一致。 入口方法 App.java 1 public class App { 2 public static void main(String[] args) { 3 com.happyframework.javastudy.hello

Java黑马Day08

ぐ巨炮叔叔 提交于 2019-11-29 06:28:09
08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) 08.02_面向对象(代码块的面试题)(掌握) 08.03_面向对象(继承案例演示)(掌握) 08.04_面向对象(继承的好处和弊端)(掌握) 08.05_面向对象(Java中类的继承特点)(掌握) 08.06_面向对象(继承的注意事项和什么时候使用继承)(掌握) 08.07_面向对象(继承中成员变量的关系)(掌握) 08.08_面向对象(this和super的区别和应用)(掌握) 08.09_面向对象(继承中构造方法的关系)(掌握) 子类中所有的构造方法默认都会访问父类中空参数的构造方法 所以,子类初始化之前,一定要先完成父类数据的初始化。 08.10_面向对象(继承中构造方法的注意事项)(掌握) super(…)或者this(….)必须出现在构造方法的第一条语句上 08.11_面向对象(继承中的面试题)(掌握) 08.12_面向对象(继承中成员方法关系)(掌握) 08.13_面向对象(方法重写概述及其应用)(掌握) 08.14_面向对象(方法重写的注意事项)(掌握) 08.15_面向对象(方法重写的面试题)(掌握) 08.16_面向对象(使用继承前的学生和老师案例)(掌握) 08.17_面向对象(使用继承后的学生和老师案例)(掌握) 08.18_面向对象(猫狗案例分析,实现及测试)(掌握)

全网最细致的spring源码分析(六):spring实例化策略

谁都会走 提交于 2019-11-29 06:27:39
上一章节,实例化过程中反复提到实例化策略,这到底是做什么的呢?事实上,在经过前面的分析,我们已经得到了足够用于实例化的所有信息,完全可以使用最简单的反射方式直接构建实例对象,但spring却不仅仅如此。 spring初始化策略主要使用SimpleInstantiationStrategy类下的instantiate(RootBeanDefinition bd, @Nullable String beanName, BeanFactory owner)方法。 @Override public Object instantiate(RootBeanDefinition bd, @Nullable String beanName, BeanFactory owner) { //bd中是否包含了MethodOverrides的列表,这里的Overrides并不是通常的意义上的多态,而是由spring提供的lookup-method,replaced-method标签生成的。 //如果没有MethodOverrides直接就可以实例化 if (!bd.hasMethodOverrides()) { //声明需要初始化的构造方法 Constructor<?> constructorToUse; //将这个db对象锁定,确保线程的安全 synchronized (bd