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. ie下的onscroll和onresize的优化

    ie下的scroll和resize的优化 1.onscroll function scrollEvent(){ //do something... console.log('do something. ...

  2. ASIHTTPRequest实现https双向认证请求

    什么是双向认证呢?简而言之,就是服务器端对请求它的客户端要进行身份验证,客户端对自己所请求的服务器也会做身份验证.服务端一旦验证到请求自己的客户端为不可信任的,服务端就拒绝继续通信.客户端如果发现服务 ...

  3. iOS工程如何支持64-bit

    苹果在2014年10月20号发布了一条消息:从明年的二月一号开始,提交到App Store的应用必须支持64-bit.详细消息地址为:https://developer.apple.com/news/ ...

  4. BIND_MISMATCH导致过多VERSION COUNT的问题

    并不是用了绑定变量就一定都会游标共享,下面我们介绍的就是一种例子.BIND_MISMATCH导致VERSION COUNT过多的原因解释: This is due to the bind buffer ...

  5. 在Visual Studio 2015中运行OPENGL

    Starting an OpenGL project in VS 2015 is really easy, thanks to the NupenGL.Core nuget package. Here ...

  6. centos linux安全和调优 第四十一节课

    centos  linux安全和调优    第四十一节课 上半节课 Linux安全 下半节课 Linux调优 2015-07-01linux安全和调优 [复制链接]--http://www.apele ...

  7. 【原创】storyboard启动应用程序的大致流程

    storyboard启动应用程序的大致流程 [原创] 转载请注明出处:http://i.cnblogs.com/EditPosts.aspx?postid=5395023 1. 用户点击APP图标—— ...

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

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

  9. UISegment属性

    1.segmentedControlStyle 设置segment的显示样式. typedefNS_ENUM(NSInteger, UISegmentedControlStyle) { UISegme ...

  10. Linux下原子性操作,类似Windows下的InterLockedXXX

    其中,这些操作的操作数(type) 可以是1,2,4或8字节长度的int类型,即: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int ...