【小白的java成长系列】——面向对象基础
2014-07-25 16:01
525 查看
今天来说说java面向对象的知识点~其实,java在其发展过程中能够成功,很大一部分原因是其面向对象的思想~
1、概念
现在来说面向对象思想,也不是什么新的知识点了,我们知道现在很多语言都有面向对象的思想了;当然我们还知道现在依旧很火的C语言,其实还是面向过程的语言;包括最近一段时间也出现了很多新的思想,比如面向函数,面向分布式,面向...等等一系列的东东,其实这些都只是一个概念而已~
在面向对象中,实际上还存在着三个主要的特性:
·封装性:保证对外部不可见;
·继承性:继续发扬广大;
·多态性:就属于变来变去;
2、类与对象
好了,概念说完了,来说说类与对象吧。。。
类:类是一组共性的产物,是同一类事物的集中表现。
对象:是一种个性的体现,是个体的产物。
这句话很重要:类是对象的模板,对象是类的实例
3、java中类的定义
java中定义类有两种方式:public class和class
· 使用 public class 声明的类必须与文件名称相同,如果使用class 声明的类可以与文件名称不同
· 在一个*.java的文件之中,只能存在一个public class,但是可以同时存在多个class的定义
· 只要是定义类则要求每个单词的首字母大写 ——> 约定
比如这边的People.java文件中的定义:
4、java中使用类——>对象
那么上面定义的类,怎么来使用呢?
其实可以写成一条语句的,一般在开发中也是一条的~
即:Person person = new Person();
这边是为了说明其内存结构才写成两条的。
看以下程序:
这样子,类和对象的基本使用就基本介绍完成了。。
下面来介绍构造方法
5、构造方法
定义:在一个类中定义的方法名称与类名称相同,且无返回值声明的方法,称为构造方法。
还是看到刚刚的代码:person = new Person();
其实在new的过程中,new的是Person类的默认构造方法。
记住:在一个类中如果没有明确的定义一个构造方法的话,则会自动生成一个无参的,什么都不做的构造方法;如果类中存在构造方法,则在new的过程中就必须使用定义了的构造方法。
这句话对于小白,理解起来可能有点困难,分号前面的可能好理解一点..参考Person就能理解前半句,后半句关于使用构造方法可能就有点困难了。其实也不难,看下面程序:
看到了不,eclipse的java语法校验会报错,报的是没有定义Person()这样一个构造方法,而在Person类中定义的是Person(String name, int age)这样的一个构造方法。。
当然构造方法可以定义多个的~
这样,构造方法也算是说完了。。下面来说说封装性。
6、封装性
从定义上看:封装性就是指类内部的定义对外部不可见。作用是为了保护数据的安全性[b]~[/b]
那什么叫做对外部不可见?
看代码:
在使用的过程中就会有错误,提示的是没有权限访问(对外部不可见)
以上的一种形式就叫做封装~
那么,name和age属性怎么访问了?
注意:
1、属性或方法不希望被外部所访问的话,则可以使用private关键字声明;
2、在开发过程中,如果不是特殊情况,java类中定义的属性基本都要求设置封装。
1、概念
现在来说面向对象思想,也不是什么新的知识点了,我们知道现在很多语言都有面向对象的思想了;当然我们还知道现在依旧很火的C语言,其实还是面向过程的语言;包括最近一段时间也出现了很多新的思想,比如面向函数,面向分布式,面向...等等一系列的东东,其实这些都只是一个概念而已~
在面向对象中,实际上还存在着三个主要的特性:
·封装性:保证对外部不可见;
·继承性:继续发扬广大;
·多态性:就属于变来变去;
2、类与对象
好了,概念说完了,来说说类与对象吧。。。
类:类是一组共性的产物,是同一类事物的集中表现。
对象:是一种个性的体现,是个体的产物。
这句话很重要:类是对象的模板,对象是类的实例
3、java中类的定义
java中定义类有两种方式:public class和class
· 使用 public class 声明的类必须与文件名称相同,如果使用class 声明的类可以与文件名称不同
· 在一个*.java的文件之中,只能存在一个public class,但是可以同时存在多个class的定义
· 只要是定义类则要求每个单词的首字母大写 ——> 约定
比如这边的People.java文件中的定义:
package me.javen.oop;//包名 class Person { // 定义类 String name; // 定义属性 int age; // 定义属性 public void say() { // 定义方法 System.out.println("123"); } } public class People { // 定义类 public static void main(String[] args) {// 定义方法 } }
4、java中使用类——>对象
那么上面定义的类,怎么来使用呢?
Person person = null;//在栈内存中声明,此过程叫做声明对象 person = new Person();//开辟对应的堆内存空间,此过程叫做实例化对象
其实可以写成一条语句的,一般在开发中也是一条的~
即:Person person = new Person();
这边是为了说明其内存结构才写成两条的。
看以下程序:
public static void main(String[] args) {// 定义方法 Person person = null; person = new Person(); //使用类中的属性 person.name="Mr.稻帅"; person.age=24; person.say(); //使用方法 }
这样子,类和对象的基本使用就基本介绍完成了。。
下面来介绍构造方法
5、构造方法
定义:在一个类中定义的方法名称与类名称相同,且无返回值声明的方法,称为构造方法。
还是看到刚刚的代码:person = new Person();
其实在new的过程中,new的是Person类的默认构造方法。
记住:在一个类中如果没有明确的定义一个构造方法的话,则会自动生成一个无参的,什么都不做的构造方法;如果类中存在构造方法,则在new的过程中就必须使用定义了的构造方法。
这句话对于小白,理解起来可能有点困难,分号前面的可能好理解一点..参考Person就能理解前半句,后半句关于使用构造方法可能就有点困难了。其实也不难,看下面程序:
看到了不,eclipse的java语法校验会报错,报的是没有定义Person()这样一个构造方法,而在Person类中定义的是Person(String name, int age)这样的一个构造方法。。
当然构造方法可以定义多个的~
class Person { // 定义类 String name; // 定义属性 int age; // 定义属性 public Person(String name, int age) {// 定义两个参数的构造方法 } public Person(String name) {// 定义一个参数的构造方法 } public Person() {// 定义无参构造方法 } public void say() { // 定义方法 System.out.println("姓名:" + name + ",年龄:" + age); } }
这样,构造方法也算是说完了。。下面来说说封装性。
6、封装性
从定义上看:封装性就是指类内部的定义对外部不可见。作用是为了保护数据的安全性[b]~[/b]
那什么叫做对外部不可见?
看代码:
private String name; // 定义属性 private int age; // 定义属性
在使用的过程中就会有错误,提示的是没有权限访问(对外部不可见)
以上的一种形式就叫做封装~
那么,name和age属性怎么访问了?
package me.javen.oop;//包名
class Person { // 定义类
private String name; // 定义属性 private int age; // 定义属性
/*
* 对封装的属性使用setter和getter方法
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {// 定义两个参数的构造方法
}
public Person(String name) {// 定义一个参数的构造方法
}
public Person() {// 定义无参构造方法
}
public void say() { // 定义方法
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class People { // 定义类
public static void main(String[] args) {// 定义方法
Person person = null;
person = new Person();// 增加了无参构造方法
// 通过setter方法设置值
person.setName("Mr.稻帅");
person.setAge(24);
person.say(); // 使用方法
//通过getter方法获取封装了的属性的值
System.out.println("姓名:" + person.getName() + ",年龄:" + person.getAge());
}
}
注意:
1、属性或方法不希望被外部所访问的话,则可以使用private关键字声明;
2、在开发过程中,如果不是特殊情况,java类中定义的属性基本都要求设置封装。
相关文章推荐
- 【小白的java成长系列】——面向对象基础
- java基础系列之三:java的面向对象程序设计
- java基础知识系列---面向对象思想的理解
- 【小白的java成长系列】——Java基础知识
- 初学Java---面向对象基础1
- [零基础学JAVA]Java SE面向对象部分-11.面向对象基础(06) 推荐
- JAVA第一周学习周记:java基础及面向对象基础知识
- [零基础学JAVA]Java SE面向对象部分-21.包及访问权限 推荐
- [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05) 推荐
- 第二天----Java基础---面向对象上
- [零基础学JAVA]Java SE面向对象部分-19.面向对象高级(07) 推荐
- 《跟我学Java 26日通》第 7 天 面向对象基础(2)
- [零基础学JAVA]Java SE面向对象部分-12.面向对象基础(07) 推荐
- 《跟我学Java 26日通》第6天面向对象基础(1)
- 理解Java面向对象的程序设计思想-Java基础-Java-编程开发
- [零基础学JAVA]Java SE面向对象部分-10.面向对象基础(05)
- [零基础学JAVA]Java SE面向对象部分-07.面向对象基础(02)
- Java面向对象基础要点
- 《跟我学Java 26日通》第6天面向对象基础(1)
- ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题