JAVA学习之类和对象
2016-12-10 11:11
162 查看
相信学习JAVA的人都被它的类强大功能搞蒙B过,因为类是JAVA的基石,一切都是类。 要搞懂类之前,我先从生活中找找跟类有关的词语: 分类, 不是一类等。不同东西不是一类,所以我认为类是用于区分不同对象的属性和行为的描述。特别注意这只是描述,就是说实际上什么都没有。就好比你饿了,我跟你描述说我有一饼,是金黄色的,上面有芝麻,8寸大,中间还有肉。你听懂了也能想像出这个饼,然并卵,你一样饿,因为没有具体的饼。
类的描述的有属性和行为两种,下面我们开始定义一个类,汽车类:
1)修饰符public, private, protect, static
2) 继承,多态,抽象类,
3)类的构造函数, 父类,子类,子类调用父类构造函数, 子类重写父类方法
等等等等, 我想说的是大家开始学的时候,不要去纠结这些概念。应该从应用的角度出发,等后面慢慢用到了,自然就学会了,下面我以继承为例:
上面有个汽车类,我们用new()相当于产生了一量汽车。这时我想要一量大货车可以定义如下的类
class Trunk
{
int color;
int price;
int wheelNum;
int ton; //吨位
int cargosize //厢位大小
void run()
{
System.out.printf("running...");
}
}
如果要一量卡车就new Trunk()一下就行了。 大家可以看下这Car 和 Trunk类有很多相似重复代码,Trunk类只多了ton, cargosize两个属性。车子还有SUV, SMART等等不同类型,但不管什么车都会有color, price,wheelNum等,没有必要重复写这么相同代码的。
JAVA为了能提高代码复用率,提高开发人员的效率,提出了继承的概念。--继承就是把父类的东西变成自己的东西,写法就是extends-这个英语意思就是扩展延展(中文就是在原来的基础上再加东西)
class Trunk extends Car{
} 写完这个代码后,Trunk就有了上面Car的属性和方法。
之后只需要添加两行即可
类的描述的有属性和行为两种,下面我们开始定义一个类,汽车类:
class Car { int color; //颜色 int price; //价格 int wheelNum; //车轮数 void run() //开 { System.out.print("running...."); } }这是一个汽车类的描述,但如果要真的开一量车,就要生成具体的对象
public class example { public static void main(String[] args) { Car car = new Car(); car.run(); } }特别要注意,最后真正能运行的必须是对象,不能直接操作类的属性和方法(非static,前面文章有谈到这事) 如果跟直接Car.run()或者Car.color都是会编译错误的,就像你不能吃我那描述的饼一样。 上面这样的类很简单,大家可能都会看的懂,但在看书过程中会发现,事情不是那么简单在JAVA书中有关类的介绍光概念就要吓死人:
1)修饰符public, private, protect, static
2) 继承,多态,抽象类,
3)类的构造函数, 父类,子类,子类调用父类构造函数, 子类重写父类方法
等等等等, 我想说的是大家开始学的时候,不要去纠结这些概念。应该从应用的角度出发,等后面慢慢用到了,自然就学会了,下面我以继承为例:
上面有个汽车类,我们用new()相当于产生了一量汽车。这时我想要一量大货车可以定义如下的类
class Trunk
{
int color;
int price;
int wheelNum;
int ton; //吨位
int cargosize //厢位大小
void run()
{
System.out.printf("running...");
}
}
如果要一量卡车就new Trunk()一下就行了。 大家可以看下这Car 和 Trunk类有很多相似重复代码,Trunk类只多了ton, cargosize两个属性。车子还有SUV, SMART等等不同类型,但不管什么车都会有color, price,wheelNum等,没有必要重复写这么相同代码的。
JAVA为了能提高代码复用率,提高开发人员的效率,提出了继承的概念。--继承就是把父类的东西变成自己的东西,写法就是extends-这个英语意思就是扩展延展(中文就是在原来的基础上再加东西)
class Trunk extends Car{
} 写完这个代码后,Trunk就有了上面Car的属性和方法。
之后只需要添加两行即可
class Trunk { int ton; //吨位 int cargosize //厢位大小 }是不是很方便。确实方便,但也有一些问题要处理,如果Car类有些东西不想上子类继承怎么办?就可以用private修饰。如果子类想改写run方便怎么办呢?等等,带着这些问题就可以去好好新概念了。
相关文章推荐
- java学习日记之类和对象再体验:重载
- java基础学习之类和对象
- Java学习日记之类和对象还要掌握:抽象类和接口
- JavaSE入门学习11:Java面向对象之类和对象
- Java视频学习笔记:基础(三)之类和对象
- Java学习之类与对象
- java学习之类和对象(一)
- Java学习总结之类与对象
- 我的java学习路之类和对象学习应用demo2日历
- Java基础学习笔记之类与对象
- 我的java学习路之类和对象
- java基础学习面向对象之类与对象 五-1
- Java学习日记之类和对象:静态成员与实例成员
- Java学习日记之类和对象初体验
- java学习之类与对象1
- Hibernate学习笔记---1.java对象持久化技术
- JAVA学习心得--类与对象
- java学习笔记:引用与对象(1)
- Java 学习笔记 (2) -Java 对象 间的 传递 赋值
- java基础学习---java对象序列化基础知识