override

3.类和接口_EJ

匿名 (未验证) 提交于 2019-12-02 20:37:20
第13条: 使类和成员的可访问性最小化 良好的模块设计能隐藏其内部数据和其他实现细节,模块之间只通过它们的API进行通信。java语言提供了许多机制来协助隐藏信息。访问控制机制决定了类、接口和成员的可访问性,实体的可访问性是由该实体申明所在的位置,以及该实体申明中所出现的访问修饰符共同决定。正确使用修饰符对于实现信息隐藏非常关键。 1.尽可能使每个类或成员不被外界访问。对于成员有四种可能的访问级别。 a.私有的--只有在申明该成员的顶层类内部才可以访问这个成员。 b.包级私有--申明该成员的包内部的任何类都可以访问这个成员。 c.受保护的--申明该成员的包内部的任何类都可以访问这个成员。并且该类的子类可以访问这个成员。 d.公有的--在任何地方都可以访问该成员。 2.实例域绝不能是公有的。一旦使这个域称为公有的,就放弃了对存储在这个域中的值进行限制的能力。 还要注意,长度非零的数组总是可变的。修正这个问题有两个方法,使数组变成私有的,并增加一个公有的不可变列表,或添加一个方法,它返回私有数组的一个备份。 public class ArrayTest { //potential security hole //public static final Object[] VALUES = {"one", "two", "three"}; private static final

侧滑销毁activity

南笙酒味 提交于 2019-12-02 12:34:59
首先导入依赖库 compile 'com.jude:swipebackhelper:3.1.2' 然后写一个BaseActivity,哪个activity需要销毁就继承这个activity,下边上代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SwipeBackHelper.onCreate(this); SwipeBackHelper.getCurrentPage(this) .setSwipeBackEnable(true) .setSwipeSensitivity(0.5f) .setSwipeRelateEnable(true) .setSwipeRelateOffset(300); //ViewServer.get(this).addWindow(this); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); SwipeBackHelper.onPostCreate(this); } @Override protected void onDestroy(

Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

試著忘記壹切 提交于 2019-12-02 02:07:16
①方法重载(Overload):在本类中出现了方法名相同但参数列表不同的方法,与返回值无关,可以改变返回值类型,只看参数列表; ②方法重写(Override):子类中出现了和父类中方法声明一模一样的方法,与返回值有关,返回值和类型都是一样的。 来源: https://www.cnblogs.com/Yanss/p/11725169.html

扬帆起航

╄→гoц情女王★ 提交于 2019-12-01 14:28:55
abstract class Workers { String name; //who String categroy; //科目类别 String level; //学历 int graduationtime; //毕业时长 abstract void work(); //工作经历   abstract void now(); //现在 } interface JavaStudy { void studyJava(); } interface AndroidStu { void studyAndroid(); } class MySelf extends Workers implements JavaStudy,AndroidStu{     public MySelf() {        super();        super.name = "博主_程序媛";         super.categroy = "文科";         super.level = "大专";         super.graduationtime = 4;        System.out.println(super.name + "," + super.categroy + "," + super.level + "," + "毕业有"+ super.graduationtime

web开发dao层通用接口

六眼飞鱼酱① 提交于 2019-12-01 10:17:05
接口 public interface IDao<E> { public List<E> findAll(); public E findById(Integer id); public void deleteById(Integer id); public void update(E entity); public List<E> pageList(Integer start,Integer end); } 实现类 public class EmployeeDao implements IDao<Employee> { public Connection conn = JdbcUtils.getConn(); @Override public List<Employee> findAll() {...} @Override public Employee findById(Integer id) {...} @Override public void deleteById(Integer id) {...} @Override public void update(Employee entity) {...} @Override public List<Employee> pageList(Integer start, Integer end) {...} } 来源: https

Servlet 的学习

烂漫一生 提交于 2019-11-30 16:36:29
Servlet的概念:server applet 运行在服务器端的小程序 Servlet是一个接口,定义了Java类被浏览器访问到Tomcat的规则,自定义一个类,实现Servlet接口,复写方法 入门 1. 创建JavaEE项目 2. 定义一个类,实现Servlet接口 * public class ServletDemo1 implements Servlet 3. 实现接口中的抽象方法 4. 配置Servlet 在web.xml中配置: <!--配置Servlet --> <servlet> <servlet-name>(取名)demo1</servlet-name> <servlet-class>(全类名)cn.itcast.web.servlet.ServletDemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>(取名)demo1</servlet-name> <url-pattern>(资源路径)/demo1</url-pattern> </servlet-mapping> * 执行原理: 1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径 2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。 3. 如果有

C++的override和final

北战南征 提交于 2019-11-30 13:43:04
1、final用于让虚函数不可被重写 struct B2 { virtual void f() final {} // final 函数 }; struct D2 : B2 { virtual void f() {} }; 如上代码是不可被编译过的 2、override 1.在函数比较多的情况下可以提示读者某个函数重写了基类虚函数(表示这个虚函数是从基类继承,不是派生类自己定义的); 2.强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。 来源: https://www.cnblogs.com/judes/p/11595365.html

2. Netty源码分析之使用篇

空扰寡人 提交于 2019-11-30 12:20:37
前言:在阅读Netty源码前,我们先了解下Netty的基本使用方法。 一、服务端代码 public class TimeServer { public static void main(String[] args) throws Exception { int port = 8080; if (args != null && args.length > 0) { try { port = Integer.valueOf(args[0]); } catch (NumberFormatException e) { // 采用默认值 } } new TimeServer().bind(port); } public void bind(int port) throws Exception { // 配置服务端的NIO线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).option

设计模式——模板模式

▼魔方 西西 提交于 2019-11-30 02:18:30
1:模板模式:就是定义一个骨架和算法,里面的方法,可以让子类去实现,也可以自己去实现。 2:代码 public abstract class AbstractTemplate { //子类去实现 protected void createBody(){ } //子类去实现 protected void createColor(){ } //父类本身 private void createEngine(){ System.out.println("所有车的引擎都是汽油机 1.5V"); } public void create(){ createBody(); //调用子类 createColor(); //调用子类 createEngine();//调用父类 } } public class BenZ extends AbstractTemplate { @Override protected void createBody() { System.out.println("奔驰的车身是跑车型"); } @Override protected void createColor() { System.out.println("奔驰的颜色是红色"); } } public class BMW extends AbstractTemplate { @Override protected