构造方法

Java学习笔记之封装与继承

心已入冬 提交于 2019-12-01 10:13:15
封装 1,将属性定义为私有的( private ) 不能通过 对象名.属性 来直接访问,但是可以通过 方法 来间接的访问, 2, 封装的意义:公有属性可以被随意修改,并且不能被程序察觉。封装后,别人通过方法来访问属性时,我们可以添加限制,访问可以被程序察觉。 下面我们用封装定义一个手机类(这种类一般我们称为 javabean ) 1 public class Phone { 2 private String type; 3 private int price; 4 private String color; 5 6 public String getType(){ 7 return type; 8 } 9 public void setType(String type){ 10 this.type=type; 11 } 12 public int getPrice() { 13 return price; 14 } 15 public void setPrice(int price) { 16 this.price = price; 17 } 18 public String getColor() { 19 return color; 20 } 21 public void setColor(String color) { 22 this.color = color; 23 }

Java 从入门到进阶之路(八)

隐身守侯 提交于 2019-12-01 09:52:10
在之前的文章我们介绍了一下 Java 中的重载,接下来我们看一下 Java 中的构造方法。 我们之前说过,我们在定义一个变量的时候,java 会为我们提供一个默认的值,字符串为 null,数字为 0。如下: 1 public class HelloWorld { 2 public static void main(String[] args) { 3 User e = new User(); // 创建一个 User 对象 4 e.print(); // 姓名:null 年龄:0 性别:null 5 } 6 } 7 8 class User { 9 String name; 10 int age; 11 String gender; 12 13 void print() { 14 System.out.print("姓名:" + name + "年龄:" + age + "性别:" + gender); 15 } 16 } 但是我们往往在使用的时候并不是想用默认的值,而是自己去定义我们想要的值,如下: 1 public class HelloWorld { 2 public static void main(String[] args) { 3 // 创建一个 zs 的 User 对象 4 User zs = new User(); 5 zs.name = "张三"; 6 zs

JAVA核心技术复习

℡╲_俬逩灬. 提交于 2019-12-01 09:46:41
1、在Java中可以用两种方式来创建线程,分别是继承父类Thread和实现Runnable接口,启动线程的方法是start,线程启动后运行的run方法里的代码。 2、如果自行构建的一个Java类想要自定义判断对象相等的规则,则需要重写其hashCode 方法,同时还需要重写他的equals方法。 3、事件处理方式采用了observer(观察者)设计模式,事件编程三要素是事件源、事件对象和监听者。 4、如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用ArrayList,反之则会使用Vector; 如果你想存储一组无序但唯一的对象,你会使用HashSet; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用HashMap,反之则会使用HashTable。 5、在一个java源文件中的三个顶级元素,按顺序分别是package,import,class。 6、Java方法的参数传递对于基本数据类型如int,byte等,参数传递是值传递,对自定义数据类型,参数传递是引用传递。 7、并发控制是多线程编程的难点。一个线程要等待某个条件的满足,调用方法wait,通知某一个处于等待状态线程的方法是notify,通知多个的是notifyAll;处于等待状态的线程当前调用的方法或程序块用关键字synchronized来限制。一段线程不安全的代码

PHP基础入门

断了今生、忘了曾经 提交于 2019-12-01 09:11:16
变量和作用域 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 static作用域 保持某个局部变量不被删除 参数作用域 echo和print echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总为 1(自带换行) 提示: echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。 PHP中的EOF 必须后接分号,否则编译通不过。 EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。 常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接 数据类型 var_dump()返回变量的类型和值 数组: $x =

Spring 源码阅读 一

本小妞迷上赌 提交于 2019-12-01 09:00:18
终于,有一天我也来看Spring的源码了,看了一阵之后感觉心情那叫一个舒畅,对Spring底层的实现也有了进一步的了解, 最直观的感受就是Spring的命名风格很赞,很长,真的长到使人见名知意, 闲言少叙,开始整理笔记了 程序的入口 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig.class); 跟进这个 AnnotationConfigApplicationContext() 程序的启动入口, 注解配置的应用上下文.主要做了下面的三件事 调用本类无参构造方法 调用 register(annotatedClasses) 将我们传递进来的配置类注册进 BeanFactory 的 BeanDefinitionMap 刷新容器 public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); register(annotatedClasses); refresh(); } 创建BeanFactory 首先调用本类的无参构造方法, ,通过上图,可以看到, AnnotationConfigAllicationContext 的父类是

第9次作业--接口及接口回调

南楼画角 提交于 2019-12-01 09:00:01
题目: 利用接口和接口回调,实现简单工厂模式,当输入不同的字符,代表相应图形时,利用工厂类获得图形对象,再计算以该图形为底的柱体体积。 代码及注释 package package1; import java.util.*; /** * 定义接口 接口方法;定义一个矩形类实现求面积的的接口方法; */ interface Shape { double getArea(); } /** * 定义一个矩形类,构造方法传入值,实现求面积的的接口方法; */ class Rect implements Shape { double width; double length; Rect(double width, double length) { this.width = width; this.length = length; } public double getArea() { return width * length; } } /** * 定义一个正方形类,构造方法传入值,实现求面积的的接口方法; */ class Square implements Shape { double length; Square(double length) { this.length = length; } public double getArea() { return length *

Java 对象和类

老子叫甜甜 提交于 2019-12-01 08:43:51
Java 对象和类 类 类(class)是构造对象的模板或蓝图。 对象 对象表示一个可以明确标识的实体。每个对象都有自己独特的标识、状态和行为。 对象的状态(特征或属性,即实例变量),由该对象的数据域来表示。 对象的行为(对象执行的动作,即功能),由方法来定义。 构造方法 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。 下面是一个构造方法示例: public class Puppy{ public Puppy(){ } public Puppy(String name){ // 这个构造器仅有一个参数:name } } 创建对象 对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步: 声明:声明一个对象,包括对象名称和对象类型。 实例化:使用关键字new来创建一个对象。 初始化:使用new创建对象时,会调用构造方法初始化对象。 下面是一个创建对象的例子: public class Puppy{ public Puppy(String name){ //这个构造器仅有一个参name System.out.println("小狗的名字是 : " + name ); } public static

第9次作业--接口及接口回调

戏子无情 提交于 2019-12-01 08:43:05
利用接口和接口回调,实现简单工厂模式,当输入不同的字符,代表相应图形时,利用工厂类获得图形对象,再计算以该图形为底的柱体体积。 /** 创建了一个图形接口 shape ,抽象方法getArea() , 创建矩形类Rectangle、正方形类Square、圆形类Cricle、三角形类Triangle、梯形类Trapezoid 调用接口, 创建一个柱体类 Cone ,包含一个换底方法和一个求体积的方法 getVolume() , 创建一个工厂类Factory,利用switch语句选择柱体的底,数据回调给接口Shape, 创建主类 Test ,由用户输入图形字符,输入以相应图形为底的柱体体积 。 */ Shape类(图形接口) /**创建一个图形类接口和一个求面积的抽象方法*/ public interface shape{ abstract double getArea(); } Cricle类(圆形类) /**创建一个圆类的继承接口,并定义半径r,PI,圆的构造方法和重写求面积方法*/ public class Cricle implements Shape { double r; final double PI = 3.14; public Cricle(double r) { this.r=r; } public double getArea() { return PI*r*r;

2019-10-14-课堂总结

寵の児 提交于 2019-12-01 08:28:58
2019-10-14-课堂总结 一, 动手动脑_1:以下代码为何无法通过编译?哪儿出错了? 错在:系统,匹配不到Foo的无参构造方法 !!(如果类没有定义构造函数,Java编译器在编译时会自动给它提供一个没有参数的“默认构造方法”。)但是如果类定义了构造方法Java编译器就不在提供没有参数的“默认构造方法”。只匹配“自己”写到构造方法。 动手动脑_2: 请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。 class Root { static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root() { System.out.println("Root的无参数的构造器"); } } class Mid extends Root { static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid() { System.out.println("Mid的无参数的构造器"); } public Mid(String msg) { //通过this调用同一类中重载的构造器