「小芳java」小芳简谱
今天给各位分享小芳java的知识,其中也会对小芳简谱进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java ”一个类的实例” 和 ”一个类的对象" 是一回事么?
你好像不太清楚类和对象的概念,我跟你简单的解释一下吧:
”一个类的实例” 和 ”一个类的对象" 是说的一个意思
类好比一个模具,对象就是用这个模具造出来的具有相同属性和方法的具体事物,俗话说:“他俩真像,好像一个模子刻出来的”,就是指的这个意思。
a instance of A
这行语句是一个布尔表达式,即它的返回值是一个布尔值,即真或假,
那么这句话是判断什么的真或者假呢?首先你要知道instance of是一个关键字,也就是这个词组在java源代码中具有特殊的含义的词语,这个词组的左边放一个对象,在这里是a,这个词组的右边放一个类,这里是A(注意java中区分大小写,a和A不是一个东西),所以
a instance of A
这条语句通俗的说就是:“a这个东西是否是A这个模具刻出来的”,用OOP(面向对象程序设计)的话来说就是:“对象a是否是A类的一个实例”
你的问题如果要没有歧义的问就应该是:“对象a是否是类A的实例”,而不是“对象a是否是A的一个对象”
再打个比方说一下类和对象吧:类就是你想象当中的若干个事物的一个种类,比如飞碟,但是如果你定义了一个飞碟类UFO以后,就有飞碟了吗?答案是,没有,因为它只是一个模具,当我们想象有飞碟这种东西时,我们还没有发现任何飞碟的实物。这就是类。
假设有一天,天空真的出现了几个飞碟,从东边飞来了一个蓝色的盘状飞碟,比如代号叫b101;从西边飞来了一个红色的球状飞碟,代号叫r102;从南边飞来了一个绿色的条形飞碟,代号叫g103;那么我们就可以说:对象b101,a102,g103都是飞碟类的实例,所以表达式
b101 instance of UFO
的返回值就是真,在java中的表达就是true
那么飞机,假设有一架飞机我们叫他空军一号aan1,则表达式
aan1 instance of UFO
的返回值就是假,在java中的表达就是false
事实上instance of关键字是不建议使用的,因为它的使用一般意味着该软件的框架非常之巨大,其中包含的抽象类和借口巨多,导致有时需要进行这样的判断,一个设计得非常健壮,逻辑紧凑的软件是不应该有这样的表达式的。
明白了吗?
补充:
你补充的这个问题,就是问equals函数的作用
equals的英语意思就是等于,在这里作为一个函数的名称,同时这个函数只有对象才能调用,这里你还要知道引用和对象的区别。
Student stu1 = new Student();
Student stu2 = stu1;
Student stu3 = new Student();
问题:这里有几个类?几个对象?几个引用?
答案是:一个类,两个对象,三个引用。
不要以为stu1和stu2不是同一个东西,在这里,他们是同一个,所以stu1.equals(stu2)的值就是true(真),而stu1.equals(stu3)的值就是false
注意需要与instance of区别,instance of是判断一个引用指向的对象是否是一个类的实例,而equals是判断一个引用和另一个引用是否是同一个对象。
再用个通俗的例子给你说说吧:
我有两个女同学,一个叫小芳,一个叫小雪,女同学是一个类,其中小芳也是我的女朋友,女朋友也是一个类,这个类继承自女同学类,那么就有
class ClassMate{ //女同学类
}
class GirlFriend extends ClassMate{//女朋友类
}
class Demo{//测试类
public void main(String[] args){
ClassMate xue = new ClassMate();//同学小雪
GirlFriend fang = new GirlFriend();//女朋友小芳
ClassMate fang2 = fang;//同学小芳
}
}
则有
(xue instance of ClassMate)==true//小雪是同学
(fang instance of ClassMate)==true//小芳是同学
(xue instance of GirlFriend)==false//小雪不是女朋友
(fang instance of GirlFriend)==ture//小芳是女朋友
----同时----
xue.equals(fang)==false//同学小雪不是女朋友小芳
xue.equals(fang2)==false//同学小雪不是同学小芳
fang.equals(fang2)=true//同学小芳就是女朋友小芳
先冷静下来,把思路理清,再好好想一下
哪里有Java零基础视频教学
Java基础视频精华版深入浅出资料资料:密码:b1fk概况Java入门教程【第一阶段】计算机基础知识,常用快捷键和常用DOS命令。Java语言发展史,Java开发环境的搭建,体验Java程序的开发,Java程序的执行过程,初学者常见问题。Java环境变量path和classpath的设置。Java语法格式,关键字,标识符,注释,常量,计算机常用进制二、八、十六的介绍,以及它们与十进制之间的相互转换。Java有符号数据表示法:原码,反码,补码的讲解。Java变量,变量的作用域,数据类型,数据类型转换,运算符,Java反编译工具介绍及通过反编译工具解决面试题,表达式。Java程序流程控制语句以及其应用场景,方法的应用和方法的重载,数组的应用及其常见操作。Java内存分配及数组内存图。Java经典案例的讲解和分析:水仙花案例,珠穆朗玛峰案例,九九乘法表案例,杨辉三角案例,小芳存钱案例,数据加密案例等。Java入门教程【第二阶段】Java面向对象思想,类的概述,对象的本质,类与对象的关系,以及在实际开发中如何应用面向对象的思想解决问题。Java如何设计类,设计类的基本原则,对象的应用。类的组成(成员变量,构造方法,成员方法)及详细讲解。Java匿名对象的概述及使用。Javadoc命令制作API。Java面向对象的三大特性:封装、继承和多态,以及相应的Java实现。Java封装的优点及缺点剖析,对象的实例化过程。Java继承的优点及缺点剖析,子类对象的实例化过程,方法的重写。Java多态的优点及缺点剖析,向上转型和向下转型问题。Java抽象类和接口的优点及缺点剖析,抽象类和接口的区别,以及抽象类和接口在多态中的应用。Java面向对象部分常见关键字的概述和讲解:private关键字,this关键字,static关键字,extends,super关键字,final关键字,interface关键字,implements关键字。Java包的作用及带包程序的编译和运行,不同包下类的访问,导包的作用及使用。Java四种访问权限修饰符的区别及常见修饰符的使用。Java内部类及匿名内部类的使用。Java经典案例的讲解和分析:学生案例,手机案例,老师案例,猜数字小游戏案例,猫狗案例,孔子装爹案例,南北方人案例,员工案例,教练和运动员案例等。Java入门教程【第三阶段】1.Java的集成开发工具Eclipse的安装和使用。JavaAPI介绍,API中常用类的讲解。2.JavaObject类,Scanner类,String和StringBuffer,StringBuilder类,数组高级及Arrays类型,3.Java各种基本数据类型包装类,Java正则表达式的使用,Pattern和Matcher类对正则表达式的支持。4.JavaMath和Random类,System类,BigInteger和BigDecimal类,Date和DateFomat类,以及Calendar类等。5.Java集合体系结构,Collection,Iterator,List,ListIterator,ArrayList,Vector,Enumeration,6.JavaLinkedList,Stack,Set,Hashset,TreeSet,LinkedHashSet,Map,HashMap,TreeMap,LinkedHashMap,7.JavaHashtable等常用集合接口和集合类常见操作。各种集合的数据结构详细分析。8.JavaJDK5的新特性:泛型,增强for,静态导入,可变参数等。泛型在集合中的使用。9.JavaCollections工具类的概述和使用。10.Java异常:异常的由来,异常体系,异常处理方式,try...catch的使用,多重捕获Multi-catch,11.Javafinally关键字的特点及应用,throws和throw关键字的使用,如何使用自定义异常等。12.JavaIO概述,File类概述及使用,递归概述及使用,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类。13.JavaIO性能分析,字节和字符的转换流,包装流的概述及常见包装类的使用。计算机编码问题的分析和讲解。14.Java操作基本数据类型的流,内存操作流,打印流,标准输入输出流,随机访问流,合并流,序列化流,属性文件集合Properties的使用。15.JavaNIO包下IO流的使用。16.Java经典案例的讲解和分析:模拟用户登录案例,统计字符串中每种字符出现的次数案例,计算你来到这个世界多少天案例,任意一年2月份有多少天案例,集合嵌套遍历案例,模拟斗地主发牌并对牌排序案例,裴波那契数列问题案例,复制文件案例,复制单级文件夹案例,复制多级文件夹案例等。Java入门教程【第四阶段】1.Java多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程生命周期,线程安全问题,线程的同步。单例设计模式讲解。2.Java死锁问题,线程间通信问题,生产者消费者问题讲解,线程组和线程池问题,以及线程相关方法介绍。3.JavaJDK5后针对线程安全问题的改进。4.Java图形用户介面编程(AWT、Swing),图形界面体系,事件监听机制以及常用界面组件的用法。适配器模式的讲解和应用。5.Java网络编程,网络通信模型,网络通信三大要素,以及其相应的Java实现。DatagramSocket,DatagramPacket,Socket,ServerSocket编程。6.Java使用UDP协议完成一个简易版聊天室程序。使用TCP协议实现文件上传服务器,以及一个服务器如何对应多个客户端的情况。7.Java的高级特性:类加载器及反射。面向对象设计原则及常见的设计模式。JDK5,JDK7,JDK8的常见新特性回顾及概述。8.Java经典案例的讲解和分析:卖票案例,生产者消费者案例,GUI版的登录注册案例,UDP聊天程序,TCP文件上传服务器案例,反射运行配置文件案例,反射越过泛型检查案例,枚举的应用案例等。
java程序题
这个是学校编程题吧,我省略了package,需要自己添加
学生类:
/**
* Title: Class Student.java
* Description:学生类
*/
public class Student {
private String studentNo;//学号
private String name;//姓名
private String sex;//性别
private String birthday;//生日
private String remark;//备注
/**
* 无参数构造器
*/
public Student() {
super();
}
/**
* 带参数构造器
* @param studentNo
* @param name
* @param sex
* @param birthday
* @param remark
*/
public Student(String studentNo, String name, String sex, String birthday, String remark) {
super();
this.studentNo = studentNo;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.remark = remark;
}
/**
* @return the studentNo
*/
public String getStudentNo() {
return studentNo;
}
/**
* @param studentNo the studentNo to set
*/
public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the sex
*/
public String getSex() {
return sex;
}
/**
* @param sex the sex to set
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* @return the birthday
*/
public String getBirthday() {
return birthday;
}
/**
* @param birthday the birthday to set
*/
public void setBirthday(String birthday) {
this.birthday = birthday;
}
/**
* @return the remark
*/
public String getRemark() {
return remark;
}
/**
* @param remark the remark to set
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 打印学生详情信息
*/
public void printDesc() {
System.out.println("------------------------------------");
System.out.println("学号:【"+this.getStudentNo()+"】");
System.out.println("姓名:【"+this.getName()+"】");
System.out.println("性别:【"+this.getSex()+"】");
System.out.println("生日:【"+this.getBirthday()+"】");
System.out.println("备注:【"+this.getRemark()+"】");
System.out.println("------------------------------------");
}
}
班级类:
/**
* Title: Class Classroom.java
* Description: 班级类
*
*/
public class Classroom {
private String name;//班级名称
private Student[] studentArray;//班级内部学生数组
/**
* 无参数构造器
*/
public Classroom() {
super();
}
/**
* 有参数构造器
* @param name
* @param studentArray
*/
public Classroom(String name, Student[] studentArray) {
super();
this.name = name;
this.studentArray = studentArray;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the studentArray
*/
public Student[] getStudentArray() {
return studentArray;
}
/**
* @param studentArray the studentArray to set
*/
public void setStudentArray(Student[] studentArray) {
this.studentArray = studentArray;
}
/**
* 根据输入的学生名称查找学生对象
* @param studentName
* @return
*/
public Student findStudentByName(String studentName) {
if(null!= this.getStudentArray() this.getStudentArray().length0) {
for(Student tmp: this.getStudentArray()) {//循环遍历学生数组
if(null != tmp.getName() tmp.getName().equals(studentName)) {//查看是否存在与输入学生名称相同的对象
System.out.println("在本班级找到了学生【"+studentName+"】");
tmp.printDesc();
return tmp;
}
}
}
System.out.println("在本班级找不到学生【"+studentName+"】");
return null;//找不到返回空对象
}
}
测试类
/**
* Title: Class Test.java
* Description:测试类
*/
public class Test {
public static void main(String[] args) {
//创建学生实例
Student student1= new Student("1","张三","男","1990-01-01","");
Student student2= new Student("2","李四","男","1991-01-01","");
Student student3= new Student("3","小红","女","1992-01-01","");
Student student4= new Student("4","小芳","女","1993-01-01","");
Student student5= new Student("5","赵四","男","1994-01-01","");
//创建班级实例
Classroom classroom = new Classroom("班级一", null);
//创建学生数组
Student[] tmpArray = {student1,student2,student3,student4,student5};
//set 学生数组
classroom.setStudentArray(tmpArray);
//查找赵四
classroom.findStudentByName("赵四");
}
}
运行结果:
在本班级找到了学生【赵四】
------------------------------------
学号:【5】
姓名:【赵四】
性别:【男】
生日:【1994-01-01】
备注:【】
------------------------------------
小芳java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于小芳简谱、小芳java的信息别忘了在本站进行查找喔。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。