Ⅰ java 里的面向对象的编程,1.是怎么找到类与类(对象与对象)之间的关系 2.为什么要初始化数据
1、这个设计到java底层的动态绑定机制。你只要知道用类声明了对象,即便在程序中你将其强制转化为其他类。但java仍能判断出它初始的类型。比如
String s=new String("test");
s=(Object)s;
System.out.println(s.getClass());//这里输出的依然会是String类型的,虽然上一部经过强制转换。
2、java中很多基本数据类型都有默认值,比如INT类型的是0,但是java最多的数据类型还是对象。
如果不初始化数据,那么对象的值默认为null,调用该对象的时候就会抛出空指针异常。我举个简单的例子。
String s="";和String s;的区别,前一个表示,我按照s中保存的地址去寻找这个String类型的对象,找到了,而且是一个空字符串。后一个表示,我想通过s中保存的地址去找对象,但是s中没有地址,是空的,因此我想去调用s的方法的时候会出错,因为他并没有指向任何一个对象。
Ⅱ java中 类 对象 属性之间的关系的研究
万物皆对象,对象是实际存在的,类则是某一种对象的汇总,将这一种对象共同具有的特征(即属性和方法)抽象出来,类是虚的,看不见摸不到的,是对象的模板,对象就是给类中的属性赋值,变成具体存在的一个实体,即实例化对象。打个比喻形容上边说的话:人是一个类,人类共同具有的特征是什么呢?性别,年龄,名字,等等,人类共同具有的方法是什么呢?睡觉,吃饭,走路等等。那么这个类就抽象出来了:
package
com.classes;//定义包
//import
导入所应用到的类(这里不导了。)
//定义人类
public
class
People{
private
String
name;//
名字(私有字段)
private
String
sex;
//性别(私有字段)
private
int
age;
//年龄(私有字段)
public
String
getName(){
return
name;}
//封装字段get访问器(读取)
public
void
setName(String
name)
{
this.name
=
name;}
//封装字段set访问器(写入)
public
String
getSex(){
return
sex;}
public
void
setSex(String
sex){
this.sex
=
sex;}
public
int
getAge(){
return
age;}
public
void
setAge(int
age){
this.age
=
age}
public
String
eat(){
System.out.println(this.name+"在吃饭");}//
吃饭的方法
public
String
sleep(){
System.out.println(this.name+"在睡觉。")}
//睡觉的方法
public
People(){}
//无参
构造函数
/**
*
有参
构造函数
*/
public
People(String
name,String
sex,int
age){
this.name
=
name;
this.sex
=
sex;
this.age
=
age;}}
人类定义好了,可是人类是虚的,你不知道这个人类到底是谁,所以我们用的时候就要实例化一个具体的对象出来,People
zhangSan
=
new
People("张三","男",18);
实例化一个张三对象(具体的张三这个人。)通过张三可以调用它的方法,String
zhangSanEat
=
zhangSan.eat();
这里的zhangSanEat
的值就是"张三在吃饭。"
这里体现了
类和对象
的关系就是,对象是类的具体表现,类是一种对象的共同具有的特征总汇。在谈谈类的访问权限,类的访问权限有4种,一个事默认的DEFAULT(理论上,不能写):也叫做包访问修饰符,顾名思义,同一个包内才可以访问,还有就是public
公共的
哪里都可以访问,private
私有的
类本身可以访问,
protected
:在同一个包内均可访问,不同包的子类可以访问,在谈谈属性:属性包括字段,和方法。每一个字段都有访问修饰符
类型
名称;如:private
int
age;就是一个私有的整形变量age,既然定义为私有的,那么超出本类范围就访问不到了,所以提供了公共的属性进行封装,即public
int
getAge(){return
age;}这样在其他类中,先实例化对象,就可以用对象加点操作符号去调用getAge();去访问了。大哥你的分真难赚,300分,我实在写累了,分
不要了
,哈哈走人。。。。。。。。。。。
Ⅲ JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系请高手做形象的解释。
类: java中的类 一般来存放实现了某些功能的代码 代码片段,是程序的基础元素
对象:对象是一个很抽象的概念,比如 一个java类 实例化以后可以称为一个对象 对象一般指的就是一个类创建出来的实例 比如
public class A{}
那么 A是一个类
A a =new A();
那么 这里的a 指的就是A这个类的实例 也就是对象 通过对象a 可以访问A类下面的 非私有字段 和方法
实体类:一般会与实体对象一起出现 对应数据库 或者其他数据源中的 一张表 俗称为一个对象
这里的实体类对象和实体类 打个简单的比方
实体类 就好像事一张白纸 白纸的获得 要从厂商那边取得 也就是我们去买 在程序里 就是用的关键字new 当new了以后 就好像是我们从生产厂商那里买来了一张白纸 当然 白纸上什么都没有
有了这张白纸以后 我们就可以在白纸上给它赋值 让它独一无二 也就是对实体类进行封装数据
每一张白纸 从我们购买的时候 都是一样的对象 都是一个字都没有的白纸 但是 后来通过业务处理 使得白纸上都有了自己的东西 也就是对象实体中的数据封装
还可以把实体类比作一个模板 创建出来的实例对象 都是跟这个模板一样的 至于 模板里面填写的内容 那就要看你的赋值了 就拿最简单的简历来说 一般都会有简历模板 我们从网上下载一个简历模板 就是创建了一个实体类的对象 而这个简历模板 就相当于一个实体类 接下来 我们对下载下来的模板进行操作 也就是对 实体类对象进行操作 对实体类对象操作 是不会影响实体类的 这个例子里面 应该一目了然 然后 根据个人信息不同 我们再模板上填写的信息也不同 比如 姓名 年龄 等等 按照个人的信息来填写 所以 就会产生实体类的对象的属性 不同 相信这样解释 你应该可以理解了吧 关键还是要靠多写训练 熟能生巧 运用以后才能知道这些东西存在的奥妙