构造方法

面向对象(一)-封装

最后都变了- 提交于 2019-12-06 06:59:48
面向对象(一) 面向对象-封装 类声明格式 public class Student{ //访问修饰符+类修饰符+类名 public String name; //类的属性 //成员变量,全局变量 //访问修饰符+数据类型+变量名 public void info(){ //访问修饰符+返回值+方法名 //同类方法中,可以调用自身的属性 this.name; //this:当前对象 //如果没有this,则遵循就近原则 } } 在main方法中调用 new 对象/属性 Student stu = new Student(); //对象+对象名 = +实例化对象 赋值 stu.name = "fr"; //示例化对象.对象属性 = +属性值 赋值由stu对象提出,通过'.'来连接。 对象数组赋值 Student [] stus = new Student[5]; stu[0] = new Student(); //或者 Student [] stus = {Student(),Student(),Student(),null,null} 构造方法 默认: public 类名(){} //该方法系统默认自带 特点: 无返回类型 方法名与类名相同 注意事项 在一个类中,java编译时先编译属性的值,在调用构造方法的值,也就是说,构造方法中如果有参数的赋值,其值会覆盖默认设定的初始值。

04-常用API

夙愿已清 提交于 2019-12-06 05:42:54
                   常用API API(Application Progarmming Interface) Java API是一本程序员的 字典 ,是JDK中提供给使用的类的说明文档。这些类将底层的代码实现封装了来我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 使用方法: import导包 创建对象 调用方法 Sacnner 类 Random类 Random:创建一个新的随机数生成器。此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。 ArrayList集合 ArrayList是大小可变的数组的实现,存储在内的数剧称为元素。ArrayList中可以不断添加元素,其大小也自动增加。 ArrayList对象只能存储引用类型而不能存储基本数据类型。类似 不能写,但存储基本数据类型对应的包装类是可以的。 String类 特点: 1.字符串的值在创建后不能被更改。 2.String对象是不可变的,所以他们可以被共享。 3.“abc”等效为char[] data={’a‘,’b‘,’c'} 常用方法 public boolean equals (Object anObject):将此字符串与指定对象进行比较。 //推荐"abc"

05-封装、继承和多态

偶尔善良 提交于 2019-12-06 05:42:33
                封装、多态和继承  封装 原则: 将属性隐藏起来,若需要访问某个属性需要提供公共方法对其访问。(方法是一种封装,private关键字也是一种封装) private关键字 private是一个权限修饰符,代表最小权限 可以修饰成员变量和成员方法 被private修饰的成员变量或成员方法只能在别类中使用 this关键字 this代表所在类的当前引用(地址值),即对象自己的引用 private String name; public void setName(String name){ this.name = name; } 通过谁调用的方法谁就是this 构造方法 当一个对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。 修饰符 构造方法 (参数列表){ //构造方法名必须和所在的类名称(包括大小写)完全一样;无返回值 //方法体 } // 无参数构造方法 public Student() {} // 有参数构造方法 public Student(String name,int age) { this.name = name; this.age = age; } //不自定义有参构造方法时默认具有无参构造;一旦自定义了构造了有参构造方法,则必须新建无参构造方法就才能调用无参构造器 继承 继承:子类继承父类(父类、超类)的属性和行为

Java之继承性

北慕城南 提交于 2019-12-06 05:08:05
为什么要有继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。其中,多个类可以称为 子类 ,单独那一个类称为 父类 、 超类 或者 基类 。 继承的概念 继承 : 就是子类继承父类的 属性 和 行为 ,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的 非私有 的属性和行为。继承描述的是事物之间的所属关系, 这种关系是: is-a 的关系 。继承的关系中,“子类就是一个父类”,也就是说子类可以被当做父类看待。例如,兔子属于食草动物,食草动物属于动物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。继承主要解决的问题是 共性抽取。 好处 提高 代码的复用性 。 类与类之间产生了关系,是 多态的前提 。 继承关系当中的特点 子类拥有父类中 非私有 的属性和行为 子类还可以拥有 自己独有 的属性和行为 继承的格式 通过 extends 关键字,可以声明一个子类继承另外一个父类, 定义格式如下: 注意:父类只是一个普通的类 代码举例 定义父类 package MyCode.demo01; // 定义一个父类 public class MyFather { //父类中的成员变量 public int age = 18; //父类中的成员方法 public void

抽象类与接口

女生的网名这么多〃 提交于 2019-12-06 04:56:27
原文转载: https://blog.csdn.net/qq_41933748/article/details/82670072 含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。 接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。 下面比较一下两者的语法区别: 1.抽象类可以有构造方法,接口中不能有构造方法。 2.抽象类中可以有普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。 4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public

python的类和对象的创建

主宰稳场 提交于 2019-12-06 04:14:04
最近接触到了一些面向对象编程的内容,涉及到了一些对象和类的只是,在这里复习一下,附上学习代码如下 1 class Person: 2 hair = 'black' #此处定义一个类变量hair 3 def __init__ (self, name='charlie', age = 22): 4 #此处为Person对象增加两个实例变量 5 self.name = name 6 self.age = age 7 8 #d定义一个say方法 9 def say(self, content): 10 return content 11 12 #调用person类的构造方法,返回Person的一个对象并将该对象赋值给p 13 p = Person() 14 #输出p的name和age两个实例变量,此时这两给变量还是默认值 15 print(p.name,'\n',p.age) 16 #访问p的实例变量name,并为他重新赋值 17 p.name = 'wind_under_the_wing' 18 19 #调用p的say方法, 20 21 print('hello,I am ' + p.name + ',' + p.say('welcome to my blog')) __init__是构造方法,用于创建对象,某个类最少要有一种构造方法,调用该类的构造方法即可创建这个类的对象 来源:

【yoyo】Servlet开发步骤

泄露秘密 提交于 2019-12-06 03:37:39
• SERVLET 开发步骤 • 1. 准备工作 • 安装 Tomcat 服务 将 Tomcat/lib/servlet-api.jar 拷贝至自己工程 /WebContent/WEB-INFO/lib 目录中 • 2. 实施并且部署 servlet • 1. 创建一个 java 类 • 2. 继承 Httpservle • 父类的方法必须删除(不要问为什么,不删会报错) • 3. 重写这个类中的 doget ()方法 • 4. 配置 Servlet • 1. 在 web.xml 中 • 1. 添加 servle 标签 (顺序不能改变) • 配置: servle-name 子标签 • 配置: servle-class 子标签( 包名 + 类名 ) • 2. 添加 servle-mapping 标签 • 配置 servle-name 子标签( name 名同配置 servlet 标签中 name 相同 ) • 配置 url-pattern 子标签,指代前端页面访问的路径 • 路径必须以 / 开头 • 2. 在创建的类外注解 • @webServlet(“/ 指向前端的路径名 ”) • 5. 发送接收数据( doget() 方法) • 1.B2S • 在 servlet 的 doget 中,使用 HttpservletRequset 中的 getParameter (

Java 对象和类

怎甘沉沦 提交于 2019-12-06 02:22:16
Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念。 对象 :对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类 :类是一个模板,它描述一类对象的行为和状态。 Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义: package codingdict.com; public class Dog { // 血统 String breed; // 年龄 int age; // 颜色 String color; // 吠叫 void barking() { } // 饿了 void hungry() { } // 睡觉 void sleeping() { } }

Java枚举类型(enum)简介

久未见 提交于 2019-12-06 02:17:25
该示例是在百度上搜到的: public class TestEnum{ /*最普通的枚举*/ public enum ColorSelect{ red, green, yellow, blue; } /* 枚举也可以象一般的类一样添做加方法和属性,你可以为它添加静态和非静态的属性或方法,这跟类的使用是一样的 */ public enum Season { // 枚举列表必须写在最前面,否则编译出错 winter, spring, summer, fall; private final static String location = "Phoenix"; public static Season getBest() { if (location.equals("Phoenix")) return winter; else return summer; } } /*还可以有构造方法*/ public enum Temp { /*通过括号赋值,而且必须有对应的带参构造器,否则编译出错 * 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值 * 如果不赋值则不能写构造器,赋值编译也出错*/ absoluteZero(-459), freezing(32),boiling(212), paperBurns(451); private final int value; public

线程池ThreadPoolExecutor的使用方法

妖精的绣舞 提交于 2019-12-05 23:52:01
方法我们通过继承Thread类和实现runnable接口或者callable接口三种方式实现。 继承Thread类实际上也是实现了runnable接口,被继承的类主要是实现run()方法,通过start()方法调用。 而callable接口是属于Executor 对比与Runnable接口功能的区别是: (1).Callable可以在任务结束后提供一个返回值,Runnable没有这个功能 (2).Callable中的call()方法可以抛出异常,而Runnable的run()方法不能抛出异常 (3).运行Callable可以拿到一个Future对象,Future独享表示异步计算的结果,它提供了检查计算是否完成的方法。由于线程属于异步计算模型,因此无法从别的线程中得到函数 的返回值,在这种情况下,就可以使用Future来监视目标线程调用call()方法的情况,放调用Future的get()方法以获取结果时,当前线程就会阻塞,知道call()方法结束返回结果。我们可以使用多线程来达到最优效率,但是,线程不是越多就越好,线程过多,创建和销毁就会消耗系统的资源,也不方便管理。 除此之外,多线程还会造成并发问题,线程并发数量过多,抢占系统资源从而导致阻塞。 我们将线程放入线程池,由线程池对线程进行管理,可以对线程池中缓冲的线程进行复用,这样,就不会经常去创建和销毁线程了,从而省下了系统的资源