自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 接口

子类继承父类,自动拥有父类的功能,需要扩展功能的话,需要用到接口package com.Study.ByStd.InterFace_;public class InterFace03 { public static void main(String[] args) { LittleMonkey littleMonkey = new LittleMonkey("大圣"); littleMonkey.work();//这项功能来自父...

2021-10-06 17:42:18 99

原创 抽象类----模板设计模式

package 设计模式.模板设计模式;public class muban01 { public static void main(String[] args) { AA aa = new AA(); aa.calculate(); BB bb = new BB(); bb.calculate(); }}package 设计模式.模板设计模式;abstract public class temp...

2021-10-04 17:15:46 121 1

原创 抽象类

抽象类还是个类,只不过不能有对象package Abstract_;//某些方法需要声明但是还没确定如何实现,就声明为抽象方法public class Abstract01 { public static void main(String[] args) {// new Animal("sad");//抽象类不能被实例化(不能造对象) }}abstract class Animal{ private String name;...

2021-10-03 19:41:45 108

原创 final细节

package Final_;public class Final02 { public static void main(String[] args) { FF ff = new FF(); ff.jisuan(); }}class QQ{ //1.定义的时候直接赋值 private final double AAA_BBB = 2.1; //2.在构造器里面赋值 private final double...

2021-10-03 19:05:45 63

原创 final关键字

package Final_;public class Final01 { public static void main(String[] args) { }}//-----------------------------//不希望A被B继承(可以再A类前面加个final)final class A{}//class B extends A{}//---------------------------------//-------------------...

2021-10-02 16:30:32 47

原创 单例模式饿汉式

软件从开始到结束的运行过程中,包获赠某一个类只有一个实例(对象)

2021-10-02 16:11:32 68

原创 课堂练习题 CodeBlock

第5行执行的时候会加载类,加载类的时候加载静态变量初始化和静态代码块,第十一行没赋值,所以接着执行13行,先把100赋给total,然后输出一行语句,因为这两部分是相同优先级,所以执行完13行还要回去在执行11行的初始化,因为之前已经赋过值了,所以初始化完成,所以5行输出100;同理第6行也是输出100,只不过静态代码块只执行一次,所以到了第6行就不执行静态代码块了package CodeBlock_;public class exer2 { //主方法 publi...

2021-09-30 08:54:35 119

原创 代码块

可以把代码块理解为没有方法名的方法在加载类的时候,或者创建对象的时候隐式调用构造器重载的时候,如果这些构造器里面有重复的代码,可以把他们写道代码块里,这样就提高代码复用率创建类的对象、创建子类的对象、使用静态成员的时候,类都会被执行子类的静态代码块运行之前,父类静态代码块也执行静态代码块只执行一次(就算创建两个对象也是执行一次)普通代码块,创建一次对象就执行一次package CodeBlock_;public class CodeBloc...

2021-09-30 08:18:59 67

原创 main语法说明

main方法是虚拟机调用public static void main(String[] args )public:Java虚拟机调用main方法的时候虚拟机和main不在同一个类,所以权限必须是公开的static:虚拟机执行的时候不创建对象,所以得是静态方法...

2021-09-29 16:20:40 105

原创 类变量/静态变量

该变量最大的特点就是能被一个类的所有对象实例共享

2021-09-28 20:18:56 141

原创 homework 4

package 项目.面向对象homework.HW04;public class HomeWork04 { public static void main(String[] args) { SomeManager someManager = new SomeManager("小明",1000,22,1.2);// someManager.print(); System.out.println(someManager.print());...

2021-09-26 20:35:49 58

原创 面向对象homework

package 项目.面向对象homework;public class HomeWork01 { public static void main(String[] args) { Person[] p1 = new Person[5]; p1[0] = new Person("小明",10,"建筑师"); p1[1] = new Person("校长",24,"厨师"); p1[2] = new Person("小红"...

2021-09-26 16:26:03 66

原创 小项目--零钱通

package 项目.零钱通;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;public class SmallChang01 { //化繁为简(显示菜单,选择菜单,提示信息) public static void main(String[] args) { boolean loop = true; Scanner s...

2021-09-26 15:29:07 173

原创 断点调试 (debug)

一步一步看源码的执行过程,发现错误所在在这个过程中,是以对象的运行类型来执行的

2021-09-24 09:41:45 230

原创 finalize方法

package object_;//对象被回收的时候,系统自动调用finalize方法(子类可以重写该方法,做一些资源回收的操作)//可以重写finalize方法,完成一些需要的功能(例如释放资源)【不重写的话就默认调用Object类的这个方法】public class finalize { public static void main(String[] args) { Car car = new Car("小车"); car = null;//上一行代码.

2021-09-23 17:44:46 174 1

原创 toString方法

package object_;//返回: 全类名+@+哈希值(十六进制)public class toString { public static void main(String[] args) { QQ qq = new QQ(); System.out.println(qq.toString()); }}class QQ{ int age;}

2021-09-23 17:10:53 46

原创 hashcode方法

package object_;//HashCode就相当于是对象的身份证,相同的对象的hashcode一样(这个值是根据对象的地址值计算而来的)public class HashCode_ { public static void main(String[] args) { AA aa = new AA(); AA aa2 = new AA(); AA aa3 = aa; System.out.println(aa.hashC.

2021-09-23 17:01:03 54

原创 equals方法

== 既可以判断基本类型,又可以判断引用类型(看地址值是否相等)package object_;// ==既可以判断基本类型,又可以判断引用类型(看地址值是否相等)public class equals01 { public static void main(String[] args) { A a = new A(); A b = a;//把a对象的地址值赋给b(栈里卖弄的a和b都指向堆空间里面的同一个对象) A c = b;//同理

2021-09-23 16:49:43 99

原创 多态参数

所谓的多态参数就是:方法的形参类型是父类,实参类型是子类(用父类的引用接收子类的对象)测试类:package PolyParameter;//方法的形参类型是父类,实参类型是子类public class PolyParameter01 { public static void main(String[] args) { PolyParameter01 p01 = new PolyParameter01(); Empolyee empol...

2021-09-23 08:15:10 923 1

原创 多态数组

package PolyArray;public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } publi.

2021-09-22 16:40:01 320

原创 Java动态绑定机制(DynamicBinding)

package polymorphic_.DynamicBinding;//动态绑定机制(调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定)//调用属性的时候,没有动态绑定机制,那里声明那里使用public class DynamicBinding01 { public static void main(String[] args) { //a 的编译类型 A, 运行类型 B A a = new B();//向上转型 System.

2021-09-21 20:15:21 303

原创 instanceOf(比较操作符)

package polymorphic_.detial3;//instanceOf是比较操作符(判断对象的类型是不是XX类型或者是XX类型的子类型)public class PolyDetial3 { public static void main(String[] args) { BB bb = new BB(); System.out.println(bb instanceof AA);//bb是AA的子类型(true) System.ou.

2021-09-21 19:37:15 210

原创 属性重写问题

package polymorphic_.SXOverride;public class PolyDetial2 { public static void main(String[] args) { Base b1 = new Sub();//向上转型(父类引用指向子类对象) System.out.println(b1.n1);//b1的编译类型是Base,所以输出Base里面的n1 }}class Base{ int n1 = 10;}.

2021-09-21 18:57:49 53

原创 多态(polymorphic)

多态----->解决代码复用性问题

2021-09-21 18:08:19 86

原创 方法的重写/覆盖(override)

子类的方法的名字,返回类型,参数和父类的方法一样,子类就能覆盖父类的这个方法细节:1.子类的方法的名和形参列表必须和父类一样2.子类的方法的返回类型和父类一样或者是父类的子类父:public Object getinfo(){} 子:public String getinfo(){}String 是 Object的子类3.子类方法不能缩小父类方法的权限(可以扩大访问权限)【public>protect>默认>private】...

2021-09-17 17:33:52 255

原创 super和this的区别

简单地说this就是从本类开始,super从父类开始

2021-09-17 11:10:53 47

原创 super关键字

package super_;public class A { //四个不同权限类型的属性 public int a = 1; protected int b = 2; int c = 3; private int d = 4; //四个不同权限类型的方法 public void n1(){ } protected void n2(){ } void n3(){ } private vo...

2021-09-17 11:06:55 43

原创 继承的本质

内存布局:当第八行创建son这个对象的时候,在方法区里面:最先加载的是object类(顶级父类),然后加载grandpa类,然后是father类,然后加载son。之后在堆里面开辟一个空间,这个空间第一部分是两个地址,分别指向常量池里面的grandpa类里面的两个属性;第二部分有一个地址,指向常量池里面的father类的String属性,还有以一个age类型的数据;第三部分有个地址,指向常量池里面的Son类的String属性之后,堆里面开辟的这个空间的地址就会传给栈里面的son对象引用...

2021-09-15 21:27:44 185

原创 继承(extends)

两个类的属性、方法高度相似---->继承(解决代码复用性)从多个相似的类中抽象出父类,在父类里面定义这些重复的属性和方法,子类不需要重复定义,只需要通过extends继承父类就行子类也可以有它自己的子类子类继承了父类的所有属性,但是私有属性和方法子类不能直接访问【可通过公共的方法访问】...

2021-09-15 18:15:59 99

原创 封装(encapsulation)

把数据(属性)和对数据的操作(方法)封装在一起,程序的其他部分只有通过方法才能对数据进行操作封装步骤:1.属性私有化(不能直接修改属性)2.

2021-09-13 19:38:27 113

原创 包基本介绍

作用:1.区分相同名字的类2.当类很多的时候,可以很好的管理类(把功能相同的或者近似的类放到同一个包里)3.控制访问范围【包的本质其实就是创建不同的文件夹来保存文件】

2021-09-12 10:12:36 56

原创 this关键字

(构造器的形参和属性名一样的话,输出的时候就变成null和0)出现问题:根据变量作用域规则,构造器里面的两个name和age就都是局部变量了,而不是属性,所以方法里面输出的时候输出的是属性的age和name了如果我们既想构造器里面的形参和属性名一样,又想不出现null,0的情况,就需要用到this关键字(加上this.之后就代表了是对象的属性)什么是thisJava虚拟机会给每个对象分配一个this,代表当前对象(每一个对象对应的堆空间里面都会有个this,this代...

2021-09-10 20:34:34 53

原创 little exercise

1. 定义两个方法,分别可以用来完成计算两个数的加减法和三个数的加减法,要求使用方法的重载public class homework01{ public static void main(String[] args) { jiajian p1 = new jiajian(); //计算两个数的加法(5+3) System.out.println("5+3的结果为" + p1.add(5,3)); //计算三个数的加法(5+3+4) System.out.println("5+3

2021-09-10 17:13:18 148

原创 构造器(构造方法) constructor

在创建对象时直接指定对象的属性是类的一种特殊方法,主要作用是完成新对象的初始化(不是创建对象)[修饰符] 方法名(形参列表)( 方法体;)修饰符可默认,也可public构造器没有返回值方法名和类名一样参数列表和成员方法一样的规则构造器调用系统完成使用细节:1.一个类可定义多个构造器(构造器的重载)【例如可以再创建一个构造器,只指定某一个属性】public class constructor{ public static vo...

2021-09-09 18:08:44 153

原创 作用域(scope)基本使用

Java中主要的变量就是属性(成员变量)和局部变量局部变量一般是在方法中定义的变量分类:全局变量:也是属性,作用域是整个类(类里面的方法也可以使用这个属性)局部变量:除了属性之外的变量,作用域就是定义它的代码块全局变量(属性)可以不赋值直接用,因为有默认值;局部变量必须赋值之后才能用,因为没默认值细节:①属性和局部变量能重名,访问时遵循就近原则方法里的name离输出语句比较近,输出的时候输出king②但是同一个方法中两个局部变量不能重名③属性随着.

2021-09-07 21:07:43 312

原创 方法递归(recursion)调用

方法自己调用自己,每次调用的时候传入不同的变量(有助于解决复杂问题,让代码简洁)重要规则:1.执行一个方法的时候就会创建一个新的受保护的空间(栈空间)2.方法的局部变量独立,不会相互影响3.如果方法中使用的是引用数据类型(数组,对象),就会共享该引用类型的数据【如果是引用数据类型,方法中传入的形参就是地址,这些形参都可以通过这个地址影响堆里面的同一个空间】4.递归必须向退出递归的条件逼近,否则无限递归【StackOverFlowError,栈溢出】5.一个方法执行完毕或者遇到

2021-09-06 19:37:31 355

原创 理解变量的赋值

如果变量是基本数据类型,此时赋值的是变量保存的数据值如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

2021-09-04 15:49:28 835

原创 再谈方法。

方法的重载在同一个类中,允许存在一个以上的同名的方法,只要他们的参数个数或者参数类型不同就行(方法同名,功能一样,只是参数不一样,给不同类型的参数使用;调用的时候括号里写的什么类型的数据就调用对应参数类型的方法)判断重载:完全按照定义。跟权限修饰符、返回值类型、形参变量名、方法体都没关系!调用方法的时候,没有发现对应参数类型的方法,就会去找别的参数类型的方法看看能不能匹配(图中两个int类型的数据赋给了double)通过对象调用方法时,如何确定某一个指定的...

2021-09-03 20:37:08 43

原创 CSS——常规流练习

目标网页:html的6,7行:reset.css是重置样式表;prac.1是我们要书写的作者样式表【先重置,重置完了自己再写样式】css的1~4行:整个网页的背景是灰黑色的,整个网页的背景一般在body或者html元素里面设置目前效果:(默认情况下,article元素是常规流的块盒,背景被内容“撑满”)白色背景要求和网页背景上下20px的距离(可以通过设置body元素的上下内边距和article元素的上下外边距)关于网页宽度:要求上...

2021-08-26 11:34:14 100

原创 匿名对象的使用

理解:我们创建的对象,没有显式的赋给一个变量名,即为匿名对象特征:匿名对象只能调用一次第九行就是匿名对象,我们没有用一个变量接收它,相当于这个对象没有名字(功能可以执行)(使用两次第九行写法,造出来两个匿名对象,这两个匿名对象不一样)使用:另一个类的方法的形参如果是这个类的对象,写的时候直接把匿名对象写进去就行,省的再单独一行定义一个对象,然后再把这个对象名字写进去了相当于把一个匿名对象赋给另外一个有名的对象(就像一个人写了一封信没写名,另一个人转出的时候写上..

2021-08-21 19:55:52 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除