7.成员变量和局部变量

成员变量:在类中定义,用来描述对象将要有什么

局部变量:在类的方法中定义,在方法中保存临时数据

区别:作用域不同

局部变量的作用域仅限于定义它的方法

成员变量的作用域在整个类内部都是可见的

8.信息的封装和隐藏

Java中通过将数据声明为私有的(private),再提供公开的(public)方法:getXXX和setXXX实现对该属性的操作,以实现下述目的:

隐藏一个类的实现细节;

使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;

便于修改,增强代码的可维护性;

举例:

public class Animal{

private int legs;       将属性legs定义为private

public void setLegs(int i){

if (i != 0 && i != 2 && i != 4){

System.out.println("Wrong number of legs!");

return;

}

legs=i;

}

public int getLegs(){    在这里定义方法

return legs;

}

}

9.构造器的定义与作用

构造方法的特征

当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。

构造方法的特征

与类名相同;

没有返回值(区别于void)

举例:

public class Animal {

private int legs;

public Animal() {legs = 4; } 构造器

public void setLegs(int i) { legs = i; }

public int getLegs(){return legs;}

}

另:默认的构造方法:

Java语言中,每个类都至少有一个构造方法;

如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个默认的无参数的构造方法。所以:一个类本身不编写构造方法,依然能用new Xxx()创建该类的实例。

Java类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供默认的构造方法;

构造器的主要作用:利用构造器参数初始化对象的属性。

10.

11.方法的重载

方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或类型不同即可。 如:

public class Test{

public static void main(String [] args){

int isum;

double dsum;

isum=add(3,5);

isum=add(3,5,6);

dsum=add(3.2,6.5);

}

public static int add(int x,int y)         {  return x+y; }

public static int add(int x,int y,int z)   { return x+y+z; }

public static double add(double x,double y){  return x+y; }

}

具体要求:

在同一个类中可以定义多个同名方法

public class PrintStream{

public void print(int i) {……}

public void print(float f) {……}

public void print(String s) {……}

}

重载方法的参数列表必须不同

重载方法的返回值类型可以相同,也可以不同

调用时根据方法的参数类型来区别。

print(3);print(1.2f);print(“hello!”)

12.构造方法的重载

构造方法一般用来在创建对象的同时初始化对象。如

class Person{

String name;

int age;

public Person(String n , int a){  name=n; age=a;}

}

构造方法重载使得对象的创建更加灵活,方便创建各种不同的对象。

构造方法重载举例:

public class Person{

public Person(String name, int age, Date d) {this(name,age);}

public Person(String name, int age) {…}

public Person(String name, Date d) {…}

public Person(){…}

}

构造方法重载,参数列表必须不同

举例:

public class Person {

private String name;

private int age;

private Date birthDate;

public Person(String name, int age, Date d) {

this.name = name;

this.age = age;

this.birthDate = d;

}

public Person(String name, int age) {

this(name, age, null);

}

public Person(String name, Date d) {

this(name, 30, d);

}

public Person(String name) {

this(name, 30);

}

}

13.this关键字

每个成员方法内部,都有一个this引用变量,指向调用这个方法的对象。

具体实例见上面程序

java总结第二次(剩余内容)//类和对象1的更多相关文章

  1. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

  2. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  3. Java入门篇(六)——类和对象

    写到这里终于写到了入门篇的最后一个知识点了.类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语 ...

  4. 《Java编程思想》读书笔记-类与对象

    欢迎各位读者关注我的微信公众号,共同探讨Java相关技术.生命不止,学习不休! 也许你慢慢地对程序有了这样的认识:程序只是一些列带有方法的对象的组合,这些方法以其它对象为参数,可在任何地方返回,并发送 ...

  5. Java基础--面向对象编程1(类与对象)

    1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...

  6. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  7. Java知多少(7)类与对象

    Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念. Java中的类可以看做C语言中结构体的升级版.结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可 ...

  8. java入门学习(4)— 类,对象理解,如何创建类,对象

    1.什么是类?具有一定相同的属性的对象的集合就叫类.2.对象:类的具体实例,就是类的实例化.比如学生是一个类(student),那学生里面的小红就是一个对象,一个有学生的属性的对象.3.如何定义一个类 ...

  9. 《Java语言程序设计》第三讲类与对象“动手动脑”

    一.以下代码为何无法通过编译?哪儿出错了? 答: 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 二. (1)以下代码输出结果是什么? package xy; public cla ...

  10. java 面向对象(一):类与对象

    1.面向对象学习的三条主线: * 1.Java类及类的成员:属性.方法.构造器:代码块.内部类 * * 2.面向对象的大特征:封装性.继承性.多态性.(抽象性) * * 3.其它关键字:this.su ...

随机推荐

  1. JavaScript:通过id来进行元素的取得

    每一个HTML元素都使用id来进行一个标注,随后可以通过document.getElementById(“ID名称”)取得指定的ID元素对象,取得元素对象之后就可以对其进行操作. 但是document ...

  2. pwd命令(转)

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

  3. Jenkins定时构建项目

    我们是不是可以自动的来构建项目那么此时我们需要使用Poll SCM和Build periodically,我们在构建触发中选择这两项即可,其实他们两个就是一个自动任务 触发远程构建:触发远程构建Bui ...

  4. 蒋鑫:为什么 Git 比 SVN 好

    在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企 ...

  5. [BS-21] 关于OC中对象与指针的思考

    关于OC中对象与指针的思考 1. 创建对象: OC中可通过代码Person *p = [[Person alloc] init];创建了一个对象p.该过程中内存情况为: 在当前线程的栈(默认1M)中, ...

  6. UIlabel多行文字自动换行 (自动折行)

    UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(, , , )]; UILabel *label = [[UILabel al ...

  7. extern "C" 和 DEF 文件.

    参考: http://www.cnblogs.com/whiteyun/archive/2011/07/22/2113560.html 问题: 如果用了 DEF 文件来导出 DLL 的函数, 还需要在 ...

  8. mysql 启动服务

    http://blog.chinaunix.net/uid-13642598-id-3153537.html mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld -- ...

  9. lua cURL使用笔记

    cURL cURL是 URL命令行工具, 即 command URL, 可以通过命令行模拟各种应用协议的发包, 包括FTP HTTP HTTPS, 官方网站 http://curl.haxx.se/ ...

  10. 创建纯洁的TableViewCell

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPat ...