12 2021 档案
摘要:Set集合 HashSet类 import java.util.HashSet; /* Set集合:元素唯一且元素无序(存储和取出顺序不一致)的集合 HashSet类概述 不保证 set 的迭代顺序 特别是它不保证该顺序恒久不变。 HashSet如何保证元素唯一性 底层数据结构是哈希表(元素是链表的
阅读全文
摘要:集合的嵌套 import java.util.Objects; public class Student { private String name; private int age; public Student() { } public Student(String name, int age)
阅读全文
摘要:可变参数 import java.util.Arrays; import java.util.List; /* 根据我们的案例发现,方法名一样,参数列表中的数据类型一样,只是个数不一样 这时候,每增加一个参数,方法就要新写一个,非常麻烦。 那怎么办呢? java替我们考虑到了这一点,提供了一个技术给
阅读全文
摘要:增强for循环 import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; /* JDK1.5之后出现的特性, 到目前为止,学过哪些特性是JDK1.5之后出现的: 泛型,增强for,包装类
阅读全文
摘要:泛型 泛型的定义及优点 import java.util.ArrayList; import java.util.Iterator; /* ClassCastException:类型转换异常 我们按照正常的写法,在集合中添加一些不是同类型的数据,在遍历的时候向下转型 报错了。 为什么呢? 因为我们在
阅读全文
摘要:ArrayList类 程序引例 import java.util.Objects; public class Student { private String name; private int age; public Student() { } public Student(String name
阅读全文
摘要:并发修改异常 需求 现在有一个集合,集合中有些字符串的元素,我想判断一下里面有没有"bigdata"这个字符串 如果有,我们就添加一个"yes" ConcurrentModificationException:并发修改异常 当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常
阅读全文
摘要:List集合特有的迭代器 List集合特有的迭代器 ListIterator extends Iterator 由于继承自Iterator接口,所以内部一定也有hasNext()方法和next()方法 Object previous()返回列表中的上一个元素,并向后移动光标位置。 可以反复调用此方法
阅读全文
摘要:List接口 Collection下的子接口:List 有序集合(有序指的是存储和取出的顺序一致) 允许重复的元素 public class ListDemo1 { public static void main(String[] args) { //创建List集合对象,使用接口多态的形式创建 L
阅读全文
摘要:迭代器 迭代器有自己的数据类型Iterator类型 Iterator iterator() 迭代器,集合的专用遍历方式 boolean hasNext() 如果迭代具有更多元素,则返回 true 。 Object next() 返回迭代中的下一个元素。 public class Collection
阅读全文
摘要:集合的遍历 集合的遍历:目的就是将集合中的元素依次取出来 Object[] toArray() 需求1、 把集合转成数组,可以实现集合的遍历 public class CollectionDemo3 { public static void main(String[] args) { //创建集合对
阅读全文
摘要:集合类——collection接口的成员方法 Collection:是集合中的顶层接口,它存在由它扩展开来的继承体系,为什么要分出很多不同的集合? 根据元素是否唯一,是否有序来区分这么多集合(后面的课程中会一一介绍) Collection: 1、添加功能 boolean add(Object obj
阅读全文
摘要:集合继承体系 案例 需求:利用数组存储3个学生信息,遍历数组获取每一个学生的信息 定义完整学生类 public class Student{ private String name; private int age ; public Student() { } public Student(
阅读全文
摘要:正则表达式 package com.shujia.java.test; /* 校验QQ号是否合法 1、必须是5-10位的 2、0不能作为QQ号的开头 3、必须都是数字 检查输入的邮箱是否合法 1、名称由数字字母特殊符号组成 2、长度5-10 3、含有@符号 4、.... */ publi
阅读全文
摘要:包装类 需求1:将100这个数据,计算出它的二进制,八进制,十六进制 需求2:如何用代码求出int类型的数据范围 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一个基本数据类型 都提供了对应的类类型。我们叫做包装类类型。 包装类类型: byte Byte short S
阅读全文
摘要:StringBuffer类的练习——字符排序 把字符串中的字符进行排序。 举例:"dacgebf" 结果:"abcdefg" 符合常识字典字母顺序,在java中又称之为自然排序 分析: 1、将被排序的字符串转成字符数组 2、将字符数组进行排序 3、将数组转成字符串 4、输出 public class
阅读全文
摘要:StringBuffer类的练习——区别案例 案例1 :String,StringBuffer,StringBuilder之间的区别 1、StringBuffer是线程同步安全的,数据安全,效率低 StringBuilder不是线程同步安全的,数据不安全,效率高 2、String的内容是不可变的,S
阅读全文
摘要:StringBuffer类的练习——对称字符串 判断一个键盘录入的字符串是否是对称字符串 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串 分析: 1、第1个字符与最后一个字符进行比较 2、第2个字符与倒数第2个字符进行比较 3、... 比较的次数:字符
阅读全文
摘要:StringBuffer类的练习——字符串反转 把字符串反转 键盘录入字符串 "qwerdf" "fdrewq" import java.util.Scanner; public class StringBufferDemo9 { public static void main(String[]
阅读全文
摘要:StringBuffer类练习—把数组拼接成字符串 public class StringBufferDemo8 { public static void main(String[] args) { char[] chars = {'a','b','c','d'}; //创建一个空的StringBu
阅读全文
摘要:String和StringBuffer的相互转换 A--B,将A转换成B,是为了使用B中特有功能 B--A,再将B转换成A,可能是引用最终的结果需要A类型,所以还得转换回来 public class StringBufferDemo7 { public static void main(String
阅读全文
摘要:StringBufferDemo类的成员方法——截取功能 StringBuffer: 截取功能 String substring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 String substring(int start, int end)
阅读全文
摘要:StringBuffer类的成员方法——反转功能 scala StringBuffer: 反转功能 public StringBuffer reverse() 导致该字符序列被序列的相反代替。 如果序列中包含任何替代对,则将它们视为单个字符进行反向操作 public class StringBuff
阅读全文
摘要:StringBuffer类的成员方法——替换功能 StringBuffer替换功能: public StringBuffer replace(int start,int end,String str) 用指定的String中的字符替换此序列的子字符串中的String 。 子串开始于指定start并延
阅读全文
摘要:StringBuffer类的成员方法——删除功能 remove,move,delete,drop,truncate StringBuffer: 删除功能 public StringBuffer deleteCharAt(int index) 删除char在这个序列中的指定位置。 该序列缩短了一个ch
阅读全文
摘要:StringBuffer类的成员方法——添加功能 StringBuffer: 添加功能 public StringBuffer append(String str) 观察API发现,不光可以追加字符串类型,可以将任意数据类型添加到 字符串缓冲区中,返回的是什么呢?返回的是字符串缓冲区本身 publi
阅读全文
摘要:StringBuffer类概述及其构造方法 StringBuffer类概述 1、如果我们对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 2、线程安全的可变字符序列 StringBuffer的区别: 1、线程安全的 不
阅读全文
摘要:String类的替换案例 字符串反转 举例:键盘录入”abc” 输出结果:”cba” 分析: 1、导包并创建键盘录入对象 2、创建一个空的字符串 3、将字符串转换成字符数组 4、倒着遍历,得到每一个字符 4、将每次获取到的字符拼接 5、输出 import java.util.Sc
阅读全文
摘要:String类的替换功能 替换功能 String replace(char old,char new) String replace(String old,String new) 去除字符串两空格 String trim() 按字典顺序比较两个字符串 int compareTo(String s
阅读全文
摘要:String类转换案例 案例1 1:遍历获取字符串中的每一个字符 2:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) public class StringDemo9 { public static void main(String[] args) { Strin
阅读全文
摘要:String类的转换功能 字符串的转换功能: byte[] getBytes() 将字符转换为字节序列 char[] toCharArray() 将字符串转化为字符数组 static String valueOf(char[] chs) 将字符数组转化为字符串 static String value
阅读全文
摘要:String类的获取功能 String类的获取功能 1、获取字符串的长度 int length() 2、返回char字符指定位置索引的值,索引从0开始到length()-1 char charAt(int index) 3、返回指定字符第一次出现的字符串内的索引如果此字符串中没有此类字符,则返回-1
阅读全文
摘要:String类的判断功能 String类的判断功能 boolean equals(Object obj) boolean equalsIgnoreCase(String str) boolean contains(String str) boolean startsWith(String str)
阅读全文
摘要:String类案例 案例1 字符串是常量,它的值在创建之后不能更改 String s = “hello”; s += “world”; 问s的结果是多少? public class StringDemo2 { public static void main(String[] args) { Stri
阅读全文
摘要:常用类——String类概述及其构造方法 字符串: 简单理解: 就是由多个字符组成的数据,叫做字符串 也可以看作是一个字符数组。 观察API发现: 1、String代表的是字符串,属于java.lang下面的,所以使用的时候不需要导包 2、String类代表字符串。 Java程序中的
阅读全文
摘要:常用类——Scanner类 构造方法: public Scanner(InputStream source)构造一个新的Scanner , 产生从指定的输入流扫描的值。 流中的字节将使用底层平台的default charset转换为字符 。 InputStream:字节流 参数 sour
阅读全文
摘要:Object类——clone方法 protected Object clone() 创建并返回此对象的副本。 protected void finalize() throws Throwable当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。 一个子类覆盖了处理系统资源或执行其他
阅读全文
摘要:Object类——equals方法 public boolean equals(Object obj)指示一些其他对象是否等于此。 今后想要弄明白一个类中的方法是如何实现的时候,API也没告诉我们怎么办呢? 看源码。将鼠标光标放在方法名上 ctrl+鼠标左键 通过观察源码发现:Object类中的eq
阅读全文
摘要:Object类——类的最终写法 public String toString()返回对象的字符串表示形式。 一般来说, toString方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。 该toString
阅读全文
摘要:Object类 Object:Class Object是类Object结构的根。 每个类都有Object作为超类。 所有对象(包括数组)都实现了这个类的方法。 每个类都直接或者间接的继承Object类 Object类中的方法: public int hashCode()返回对象的哈希码值。 支持这种
阅读全文
摘要:常用类——API概述 即为Aplication Programming Interface 的英文缩写 中文全称应用程序编码接口 Java API值得就是jdk中提供各种类的Java功能
阅读全文
摘要:匿名内部类 interface A{ b(); c(); } class B implements A{ b(){..} c(){..} } A a = new B(); A a = new A(){ b(){..} c(){..} }; 匿名内部类: 就是内部类的一个简化写法。 存在匿名内部类的前
阅读全文
摘要:局部内部类 1、可以直接访问外部类的所有成员 2、可以在外部类中的局部范围中创建对象,通过对象调用内部类中的方法,来使用内部类的局部功能。 class Outer6{ private int num = 10; public void fun(){ int num2 = 100;//局部内部类所
阅读全文
摘要:内部类案例 /* class Outer { public int num = 10; class Inner { public int num = 20; public void show() { int num = 30; System.out.println(?); System.out.pr
阅读全文
摘要:静态内部类 成员内部类常见的修饰符为: private:为了保证数据安全性 static:为了方便访问数据 静态修饰的特点: 内部类如果是静态修饰的,只能访问外部类静态的成员 创建静态内部类的格式: 外部类名.内部类名 对象名=new 外部类名.内部类名(); class Outer4{ pri
阅读全文
摘要:成员内部类 成员内部类: 1、内部类可以访问外部类的成员,包括私有 2、外部类想访问内部类的成员,就必须要创建内部类的对象 创建内部类的格式: 外部类名.内部类名 对象名=外部类对象.内部类对象; class Outer3{ private int num = 10; class Inner
阅读全文
摘要:内部类概述 概述 把类定义在其他类的内部,这个类就被称为内部类(举例:在类A中定义了一个类B,类B就是内部类) 内部类的访问特点 1、内部类可以访问外部类的成员,包括私有成员(private修饰的成员) 2、外部类想要访问内部类的成员,就必须要创建内部类的对象 //外部类 class Outer{
阅读全文
摘要:包与权限修饰符 包 程序示例 /* 包的概述 其实就是文件夹 作用: 对类进行分类管理 包的定义及注意事项 定义包的格式 package 包名; 多级包用.分开即可 注意事项: package语句必须是程序的第一条可执行的代码 package语句在一个java文件中只能有一个 如果没有package
阅读全文
摘要:形式参数和返回值问题案例 形式参数的问题案例 程序示例 /* 形式参数: 基本数据类型(以前说过,这里不说了):byte、short、int、long、float、double、char、boolean 引用数据类型: 类:当类作为方法的形式参数的时候,实际上需要的是该类的对象的地址值 抽象类:当抽
阅读全文
摘要:接口练习 猫狗案例 加入额外的跳高功能 分析: 猫:姓名,年龄,吃饭,睡觉 狗:姓名,年龄,吃饭,睡觉 由于猫和狗存在共性,所以我们提取出来到一个抽象类中 动物: 姓名,年龄,吃饭(),睡觉() 猫:继承自动物 狗:继承自动物 由于跳高是一个额外的功能,不是动物特有的,所以我们利用接口的方式定义 接
阅读全文
摘要:类与类,类与接口,接口与接口之间的关系 类与类: 继承关系,只能进行单继承,不可以进行多继承,但是可以多层继承 类与接口: 实现关系,可以是单实现,也可以一次实现多个接口,也可以在继承一个类的 同时,实现多个接口。 接口与接口之间的关系: 继承关系,可以单继承,也可以多继承。 class A{}
阅读全文
摘要:接口成员的特点 成员变量: 只能是常量,并且是静态的 它里面给成员变量的默认修饰符是public static final 建议:手动全部补齐 构造方法: 接口中没有构造方法 成员方法: 接口中的成员方法只能是抽象方法,没有方法体,连大括号都没有 它会自动补充修饰符:public abstract
阅读全文
摘要:接口的特点 接口的特点: 1、接口使用关键字:interface表示 定义格式:interface 接口名{} 2、类实现接口用 定义格式:class 类名 implements 接口名{} 3、接口不能实例化 那么如何表示接口的实现呢? 使用多态的方式实现,有具体的子类进行实例化,
阅读全文
摘要:抽象类的成员特点 成员变量 可以是变量,也可以是常量 构造方法 有构造方法,但是我们上一个程序中总结出抽象类不能实例化,那构造的意义是 什么呢?要想初始化子类,就必须先初始化父类,在继承的关系中有用 成员方法 可以有抽象方法 限定子类必须完成某些动作 也可以有非抽象方法 提高代码
阅读全文
摘要:抽象类特点 /* 在抽象的动物类中定义两个抽象方法。吃饭和睡觉。 */ abstract class Animal4{ //定义一个抽象方法吃饭,不给出具体实现 public abstract void eat(); //定义一个抽象方法睡觉,不给出具体实现 public abstrac
阅读全文
摘要:抽象类概述 抽象的表述: 我们之前所说的猫,狗,猪,羊驼,熊猫等等都是动物的具体的例子,而动物本身是一个抽象的 概念,而我们之前是将动物写成了一个类,而类又可以创建对象,但是呢,实际上抽象的东西本身应该不能 实例化,并且动物这个概念中吃的方法,以及动物共有的方法本身也是一个不具体的方法, 我们在今天
阅读全文
摘要:多态中的转型问题 猫狗案例练习多态版 class Animal{ public void eat(){ System.out.println("吃饭"); } } class Dog extends Animal{ @Override public void eat() { System.out.p
阅读全文
摘要:对多态向下转型的理解 多态的向下转型: 存在多态的前提:(缺一不可) 1、要有继承关系 2、要有方法重写 3、要有父类的引用指向子类对象 class 曹操{ int age = 50; public void fight(){ System.out.println("赤壁之战") } } class
阅读全文
摘要:多态向下转型 多态的前提 1、要有继承的关系 2、子类要重写父类中的方法 3、要有父类的引用指向子类对象 多态的弊端: 多态无法使用子类特有的方法 class Father1{ public void fun(){ System.out.println("这是父类中的fun方法");
阅读全文
摘要:父类静态成员全局共享 父类中,static修饰的静态成员变量以及静态成员方法由全局共享 class A{ //父类中的静态成员可以看作是一个全局共享的 public static int a = 10; public static void fun(){ System.out.println("he
阅读全文
摘要:多态的好处 代码扩展性很好(由继承所带来的好处) 代码的维护性很好(由多态所带来的好处) 例题多态练习 class Animal2{ String name; int age; Animal2(){ } Animal2(String name,int age){ this.name = name;
阅读全文
摘要:多态访问成员的特点 程序示例 /* 多态访问成员的特点: 1、成员变量 编译看左边,运行也看左边。 编译看左边:指的是看父类中有没有该成员,如果有说明编译不报错,可以进行访问 运行看左边:指的是编译不报错的前提下,去访问父类中的成员。 2、构造方法 创建子类对象的时候,初始化子类先调用子类的构造方法
阅读全文
摘要:多态的概述 程序引例 /* 多态概述: 某一个事物,在不同时刻表现出来的不同状态。 举例: 水(气态,液态,固态) 多态的前提:(同时满足) 1、要有继承关系 2、要有方法重写 你可以不去重写,但是呢,如果不重写,从常理来说,就无法体现子类的特性 3、要有父类引用指向子类对象 父 fu = new
阅读全文
摘要:final关键字 我们如果说父类的东西不想让子类去继承: 可以使用private修饰或者static 由于继承方法中有一个现象:方法重写 所以,当方法可以被重写的时候,父类原本的方法还在,但是调用是子类重写后的 方法,如果我依旧想保留父类原本的方法,不想让子类重写,但是呢,我想让子类去用 针对于这样
阅读全文
摘要:继承与成员方法的关系--方法的重写 方法重写的概述 当子类中的方法与父类中的方法一样的时候,内部实现不一样,这种现象我们称之为方法的重写,方法的覆盖 方法重写的定义 子类中的方法名与形参列表以及返回值都和父类一样,只是内部实现不一样 面试题 Java中重写与重载的区别: 1、重写是发生在继承的关系中
阅读全文
摘要:继承与成员方法的关系 继承与成员方法的关系: 1、当子类中的方法与父类中的方法不同名的时候,根据调用方法的名字的不同,调用的方法也不同 class Father2{ public void fun1(){ System.out.println("这是父类的fun1方法"); } } class So
阅读全文
摘要:继承与构造方法的关系 先记住一句话,要想初始化子类,就必须初始化父类,而初始化调用的是构造方法 子类中所有的构造方法中都会默认含有一个访问父类的无参构造方法super() class Father{ } class Son extends Father{ int a=30; Son(){ super
阅读全文
摘要:继承super关键字 继承与成员的关系 class Demo { int a=10; public void fun1(){ int a=100; System.out.println(a); } } class DemoZi extends Demo{ int b=20; int a=40;
阅读全文
摘要:继承中成员变量的关系 结论:(访问变量遵循就近原则) 在子类方法中访问一个变量 首先在子类局部范围找 然后在子类成员范围找 最后在父类成员范围找(肯定不能访问到父类局部范围) 如果还是没有就报错。(不考虑父亲的父亲…) 程序示例 /* 继承中的成员变量的关系 当子类的成员变量与父类的成员变量名字一致
阅读全文
摘要:使用继承的注意事项 子类只能继承父类的所有非私有的成员(成员变量和成员方法) 体现了继承的另一个弊端:打破了封装性 子类可以继承父类的构造方法吗? 子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法。 不要为了部分的功能特地的去使用继承 例如: class A{ s
阅读全文
摘要:继承的优缺点 继承的优点 提高了代码的复用性 多个类相同的成员可以放到同一个类中 提高了代码的维护性 如果功能的代码需要修改,修改一处即可 让类与类之间产生了关系,是多态的前提 继承的缺点 提高了类的耦合性 设计原则: 高内聚低耦合 简单的理解: 内聚就是自己完成某件事情的能力。 耦合就是类与类之间
阅读全文
摘要:继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 通过extends关键字可以实现类与类的继承 格式:class 子类名 extends 父类名 {} 单独的这个类称为父类,基类或者超类; 这多个类可以称为子类或者派生类。
阅读全文
摘要:代码块的执行顺序 讲解代码块的目的:今后面试的时候,会有相关程序题,需要熟悉不同的代码块的执行顺序 代码块: 在Java中,使用{}括起来的代码被称为代码块 根据其位置和声明的不同,可以分为 局部代码块(当作正常的代码看待) 格式:只在方法中出现,使用大括号括起来的代码叫局部代码块 优点:使用完毕及
阅读全文
摘要:通过API学习Math类 程序引例 /* 根据帮助文档使用Math类 Math:Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。 属于哪个包下面的(看使用该类需不需要导包): 注意:今后,发现一个类在java.lang包下的时候,在代码中时,不需要导包 Math类没有构造方
阅读全文
摘要:制作帮助文档(API) 文档注释: 格式:/** ... */ 如何通过文档注释制作一个说明书呢? 写一个工具类 在工具类中加入文档注释 怎么加? 请看ArrayTool中的文档注释 加什么东西呢? 作者,版本,方法中参数,返回值等等 怎么用呢? 在DOS命令行窗口输入 javadoc -d 目录
阅读全文
摘要:示例:制作数组工具类(ArrayTool) /** * 工具类要把无参构造方法私有化然后工具类的方法用static修饰 * 这样别人在使用时就只能通过类名来调用你的工具类的方法了. * * 格式: * 首先在最前面通过文档注释写出这是一个具有什么功能的工具类 * 然后加上 @author 作者名 @
阅读全文
摘要:main方法传参 现在我们来详细解剖一下HelloWorld,main方法 public:公共的,访问权限最大,因为要被JVM识别所编译,所以权限要够大 class:java的基本单位类,class是定义一个类的关键字 MainDemo:类名,符合标识符的命名规则 static:静态的,属于类的本身
阅读全文
摘要:1、使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑。 要求: 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问 限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示,默认设置“心情好”。 设置构造函数实现对属性赋
阅读全文
摘要:程序引例 /* 定义一个人的类 经过测试发现,我们举例子的时候,都是中国人,国籍都一样,都是中国 一样的国籍,每次创建的时候,都会在堆内存开辟一个这样的变量空间 总觉得有点浪费。 有没有什么办法,让所有一样国籍的人共用一个国籍的值 针对多个对象拥有共同的成员变量,值是一样的时候 Java提供了一个关
阅读全文
摘要:/* 定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了Test,进行测试。 */ class Demo { //第一种方式: // public int sum() { // int a = 11; // int b = 22; // int c = a + b; // retur
阅读全文
摘要:无参构造方法对类的初始化过程 有参构造方法对类的初始化过程
阅读全文
摘要:/* 类的组成:成员变量,成员方法 今天又学习了一个新的成员:构造方法 改进一下我们之前写的类: 成员变量 构造方法 成员方法: 根据有无返回值: 1、没有返回值的成员方法 2、有返回值的成员方法 根据有无参数: 1、无参的成员方法 2、有参数的成员方法 */ class Student2 { pr
阅读全文
摘要:/* 构造方法: 构造方法的目的是为对象中的数据进行初始化。 格式: 1、方法名与类名相同 2、没有返回值类型,连void都没有 3、没有具体的返回值 */ class Student { private String name; private int age; Student(){ System
阅读全文
摘要:class Student3 { //定义成员变量 private String name; private int age; //提供公共的getXxx()和setXxx()方法 //回想一下,我们之前给变量进行命名的时候,有一个规则:见名知意 //所以我们改一下 //我们根据变量命名规则的见名之
阅读全文
摘要:/* 定义一个学生类: 成员变量:姓名,年龄 成员方法:show() 我们在正常开发的过程中,发现一个问题: 我们通过对象.变量名的形式给成员变量进行赋值,在赋值年龄的时候 我们居然可以赋值一些不合理的数据,比如我赋值10000 根据现实实际情况来看,年龄赋值10000是不合理。 想一想,如果我们在
阅读全文
摘要:/* 匿名对象:简单来说,就是没有名字的对象 用内存的形式解释: 我们在学习匿名对象之前,一直都是在堆内存中new对象,然后将地址值 赋给栈里面的变量,这个变量也就是对象的名字。 而匿名对象,就说明没有栈中变量引用。 匿名对象的使用场景 1、当调用方法的时候,仅仅只调用一次的时候,可以使用匿名对象
阅读全文
摘要://定义一个动物类,叫的方法 class Animal { public void shout() { System.out.println("动物叫"); } } class Demo1 { //类是一个引用数据类型,所以它可以当作形参的数据类型 //今后当你看到一个方法上的形参的数据类型是一个类
阅读全文
摘要:/* 成员变量与局部变量的区别: 1、在类中的位置不同 成员变量 类中方法外 局部变量 方法内或者方法声明上 2、在内存中的位置不同 成员变量 堆内存: 随着对象在堆内存中的创建而出现,所以成员变量是在堆内存中出现 局部变量 栈内存: 由于方法执行是在栈中执行,所以在方法中定义的局部变量 也就是存在
阅读全文
摘要:对象内存图 一个对象的内存图 一个对象的基本初始化过程 /* 手机: 属性:品牌,颜色,价格 行为:打电话,发短信,学习 Phone: 成员变量:brand,color,price 成员方法:call,sendMessage,study */ public class Phone { //定义成
阅读全文
摘要:类与对象的概述 如何使用java语言描述现实生活中的事物呢? 举例:人 五官,姓名,性别,年龄... 吃饭,学习,说话,敲代码... 水杯 颜色,形状,材质,容积... 装水,泡茶... 属性:用来描述事物的信息 行为:用来描述事物能够做什么 我们学习编程语言的目的,其实就是用来模拟现实世界的事物的
阅读全文
摘要:面向对象的思想概述 1、什么是面向对象的思想 面向对象的思想是基于面向过程思想发展而来的。 面向过程:强调的是实现功能每一个步骤 面向对象:强调的是对象,然后由这个对象去调用功能 面向过程:强调的是实现功能每一个步骤 面向对象:强调的是对象,然后由这个对象去调用功能 2、面向对象的特点: 1) 是一
阅读全文
摘要:参数的传递问题 看程序写出结果,并总结基本类型和引用类型参数的传递问题 /* 看程序写结果: */ public class SiKaoTiDemo1 { public static void main(String[] args) { int a = 10; int b = 20; System.
阅读全文
摘要:二维数组练习 公司年销售额求和 /* 公司年销售额求和 某公司按照季度和月份统计的数据如下:单位(万元) 第一季度:22,66,44 第二季度:77,33,88 第三季度:25,45,65 第四季度:11,66,99 键盘录入每个月的销售额,按照季度去输入 */ import java.util.S
阅读全文
摘要:二维数组遍历 /* 二维数组遍历 int[][] arr = {{1,2},{11,22,33},{100,200,300},{10,20,30,40}}; 分析: 1、先获取每一个一维数组 2、一次遍历每一个一维数组中的元素值 */ public class Array2Test1 { publi
阅读全文
摘要:二维数组 概述 二维数组: 就是元素是一维数组的数组 举例: 二班 {{小王,小李},{小刘,小明},{小朱,小伟}} 二维数组的定义格式 格式1 /* 数据类型[][] 变量名 = new 数据类型[m][n]; 左边: 数据类型:表示最终元素的数据类型 [][]:表示是一个二维数组 变量名:二维
阅读全文
摘要:数组练习 数组获取最值 /* 数组获取最值(获取数组中的最大值最小值) 1、定义一个数组,存储一些元素(使用静态初始化) 2、首先在数组中任意找一个元素进行比较,默认一开始它就是最大值 一般来说,我们取第一个(选择排序) 3、遍历其他的元素与第一个元素进行比较,如果找到了更大的元素, 就将它取代,如
阅读全文

浙公网安备 33010602011771号