构造方法

Java day5【第十四章】继承案例分析

血红的双手。 提交于 2019-12-01 15:59:13
【第十四章】继承案例分析: 一.案例分析类:   建立一个人类和学生类,功能要求如下:  (1)Person中包含四个私有型的数据成员name,addr,sex,age,分别为字符串型,字符串型,字符型和整型。   一个四参构造,一个俩参构造,一个无参构造,一个输出方法显示四种属性。 (2)Student继承Person类,并增加成员math,English存放数学和英语成绩。一个六参构造方法,一个俩参构造方法,一个无参构造方法和重写输出方法用于显示六种属性。 class Person { private String name; private String addr; private char sex; private int age; public Person(){} public Person(String name ,String addr){ this(name,addr,'男',0); } public Person(String name, String addr, char sex, int age){ this.name = name; this.addr = addr; this.sex = sex; this.age = age; } public String getInfo(){ return "姓名:"+this.name + "\t地址:"

java OOP第二章_封装

爱⌒轻易说出口 提交于 2019-12-01 13:51:38
一、 封装:     属性通过private访问修饰符将其设置为私有的,只有当前类中可以访问,同时提供通过public访问修饰符的公共方法可以给任何类中访问。     通常针对属性提供公共的setter方法进行赋值,提供公共的getter方法进行取值,若需要的情况下可以在方法中添加一些逻辑判断代码保证数据的安全性。 代码参见:     com.oop.ch02.Dept     com.oop.ch02.Emp 1、八种基本数据类型对应的有八种引用数据类型(包装数据类型),     * byte short int long loat    double char boolean      * Byte Short Integer   Long Float   Double   Character Boolean     注:当基本数据类型的值转为引用数据类型的值(包装数据类型)时称为“自动装箱”,反之为“自动拆箱”。 2、实体需要满足的条件: 实体数一种特殊的Java类,主要用于对象模型个关系模型之间的关系传递的媒介,他要满足如下几个条件。   1) 要有与数据表字段相对应的属性   2) 提供属性对应的getter和setter方法   3) 提供有参和无参的构造方法   4) 重写toString()方法,方便在输出对象时以字符串的形式显示属性,方便我们调试程序。 二、

java基础知识总结

霸气de小男生 提交于 2019-12-01 13:21:27
1.java基本环境与class加载 对应不同的操作系统平台有不同的java虚拟机 jdk>jre>jvm classpath配置的作用:一个类要用到另一个类到classpath路径中去,在jdk1.5中默认是在当前目录下去查询要运行的.class文件 path:在path去找到运行的javac命令 java_home:配置好后其它软件运行只需要在%JAVA_HOME%/bin,查找到javac与其它的命令 在.java文件中,只能有一个public类。 1.使用命令行的方式 .java文件名如果与主类中的class文件不同,则运行程序步骤是: 1.javac 文件名.java 2.java 主类名 2.使用eclipse中书写java文件 运行.java文件,如果主类没有没有去写public类型,而且主类文件名与.java程序文件名不同,则会出现运行出错,因为eclipse会去找同名的class文件去运行 运行步骤是: 1.javac 文件名.java 2.java 文件名 注意:最先有数据的是方法区 类的加载 程序运行过程是:ClassLoader将其Load到内存中CodeSegment,运行环境找到main方法开始执行,classsLoader的类加载机制是并非一次性加载,需要的时候加载(运行期间动态加载) 如果想要得到class加载时候的详细信息

java中类的构造方法出错点

青春壹個敷衍的年華 提交于 2019-12-01 13:19:17
大家请看下面的这个代码 package ppt_test; public class test1 { public static void main(String args[]) { Foo obj1=new Foo(); } class Foo { int value; public Foo(int initValue) { value=initValue; } } }   这样写在Eclipse中会报错,如下图 这是为什么呢? public Foo(int initValue) 上面的代码中,下面的Foo构造函数中有参数,但是上面调用的时候却没有给,这样就不行,如果下面没有自定义构造方法,直接那样写也对,因为java中有默认的构造函数 因为在java中,如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。 来源: https://www.cnblogs.com/xp-thebest/p/11688069.html

整理笔记——java基础总结

五迷三道 提交于 2019-12-01 13:17:49
# JAVA ## 基础内容 ### JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。 JDK(Java Development Kit):java的开发工具,包括jre+开发工具 ### 环境变量path和classpath的作用是什么? (1)path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录, 用于指定DOS窗口命令的路径。 (2)Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。 ### 变量有什么用?为什么要定义变量?什么时候用? 答: 变量的作用:用来存储数据。 为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用 ### &和&&的区别? (1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算; 只能操作boolean类型数据; (2)&不会出现短路,将整个表达式都运算。既可以操作boolean数据还可以操作数。 ### 标示符命名规则: 由数字(0-9),大小写英文字母,以及

JAVA语言动手动脑问题

懵懂的女人 提交于 2019-12-01 12:11:49
1. 早期经常这样定义变量 int value=100; 前面的示例中这样定义变量 MyClass obj = new MyClass(); 这两种方式定义的变量是一样的吗? 答:不一样,后者开辟了空间,而且后者的意思是,为 MyClass类的对象obj构造空间,并且调用MyClass的构造函数。 2. 对象变量也可以使用“==”判断两变量值是否相等吗? 第一个执行结果为true,第二个执行结果为false,这代表对象变量还有字符串不可以用==判断两变量值是否相等,因为他们比较的是两个对象或者字符串的地址,如果声明了两个对象或者字符串那么他们的地址不会相等所以会是false。 但是如果有两个对象obj1=obj2,那么用==判定之后的结果为true,如果真的要判断两个字符串或者对象的值是否相等那么就要用equals()方法,并且equals()方法来自于继承,虽然在主方法中没有写继承,但是它继承的是父类Object类,而且是最大的父类,所以默认情况下不写继承。 3. 请总结一下,这个方法有哪些“与众不同之处”,你能列出几条? 请总结一下,这个方法有哪些“与众不同之处”,你能列出几条? 答:该方法与类名称相同,并且无返回值类型(不用void),并且如果没有声明构造方法的时候,系统会自动生成一个默认构造方法,继承于Object类,并且如果,声明了构造方法

类的初始化块,构造方法与字段的初始值

情到浓时终转凉″ 提交于 2019-12-01 12:06:57
1 public class Test2 { 2 { //类的初始化块 3 field=200; 4 } 5 public int field=100; //字段的初始值 6 public Test2(int value) { //类的构造方法 7 this.field=value; 8 } 9 10 public Test2(){ 11 12 } 13 public static void main(String[] args) { 14 Test2 obj=new Test2(); //调用方法 15 System.out.println(obj.field); 16 17 obj=new Test2(300); //调用构造方法 18 System.out.println(obj.field); 19 } 20 21 } 以上代码运行结果为: 100 300 1 public class Test2 { 2 3 public int field=100; //字段的初始值 4 { //类的初始化块 5 field=200; 6 } 7 public Test2(int value) { //类的构造方法 8 this.field=value; 9 } 10 11 public Test2(){ 12 13 } 14 public static void main(String

JAVASE入门基础知识整理笔记篇(十三)

試著忘記壹切 提交于 2019-12-01 11:13:24
TreeSet 底层:红黑树 优点:升序排序,查询效率较高 引用数据类型的去重和排序:实现内部|外部比较器 内部比较器 : Comparable 接口 实现Comparable接口重写comparaTo方法,自定义比较规则 外部比较器: Comparator 接口 重写compare方法,自定义比较器 HashSet 是由HashMap维护的,但是HashMap是键值对的形式,初始容量是16,加载因子是0.75 底层是hash表的结构 HashMap的key如果是引用数据类型的对象,做去重要重写hashCode和equals 如果想要实现value去重,需要手动判断 反射 1.创建对象的时候,拿到的都是当天前类型Class对象的一个镜像|赋值体 2.在类加载的时候,会在内存中存在当天前类型的一个Class对象,一个类的Class对象中存储这个类的所有信息(属性,方法,构造器…) 3.只要我们能够获取这个类型的Class对象,就可以对这个类做一切操作 Class 类的实例表示正在运行的 Java 应用程序中的类和接口 获取源头(Class对象): 1.对象.getClass() 2.类名.class 3.Class.forName(“类的权限命名:包名+类名”) 通过反射创建对象 1)通过反射获取到类中的构造器 2)根据构造器创建对象 构造器Constructor对象

python之面向对象

删除回忆录丶 提交于 2019-12-01 10:29:39
(一)构造方法和实例方法 __init__() 为构造方法,第一个参数必须为 self 参数。 self 代表该方法的调用者,即谁在调用该方法,那么 self 就代表谁。 类里面的jump()和run()方法为实例方法。 代码: 1 class Dog: 2 def __init__(self): 3 print(self,"在调用构造方法") 4 # 定义一个jump()方法 5 def jump(self): 6 print(self,"正在执行jump方法") 7 # 定义一个run()方法,run()方法需要借助jump()方法 8 def run(self): 9 print(self,"正在执行run方法") 10 # 使用self参数引用调用run()方法的对象 11 self.jump() 12 dog1 = Dog() 13 dog1.run() 14 dog2 = Dog() 15 dog2.run() 结果: <__main__.Dog object at 0x00000276B14B12B0> 在调用构造方法 <__main__.Dog object at 0x00000276B14B12B0> 正在执行run方法 <__main__.Dog object at 0x00000276B14B12B0> 正在执行jump方法 <__main__.Dog

你不知道的线程池构造方法的那些趣事?

流过昼夜 提交于 2019-12-01 10:27:55
(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 ThreadPoolExecutor的构造方法是创建线程池的入口,虽然比较简单,但是信息量很大,由此也能引发一系列的问题,同样地,这也是面试中经常被问到的问题,下面彤哥只是列举了一部分关于ThreadPoolExecutor构造方法的问题,如果你都能回答上来,则可以不用看下面的分析了。 问题 (1)ThreadPoolExecutor有几个构造方法? (2)ThreadPoolExecutor最长的构造方法有几个参数? (3)keepAliveTime是做什么用的? (7)核心线程会不会超时关闭?能不能超时关闭? (4)ConcurrentLinkedQueue能不能作为任务队列的参数? (5)默认的线程是怎么创建的? (6)如何实现自己的线程工厂? (7)拒绝策略有哪些? (8)默认的拒绝策略是什么? 构造方法 好了,我们直接上代码。 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { this(corePoolSize, maximumPoolSize,