Java面向对象程序设计笔记——第四章类与对象

1:成员变量与局部变量{

在变量声明部分声明的变量叫做成员变量;

在方法体中声明的变量叫做局部变量

}

2:实例变量与类变量

{

成员变量又分为实例变量和类变量。

在变量的类型前加static的为类变量,没有static的为实例变量

}

3:实例变量与类变量的区别{

(1)类变量是与该类创建的所有对象相关联的变量,改变其中一个对象的类变量就改变了其他对象的这个类变量,类变量可以通过某个对象进行访问,也可以直接通过类名进行访问。原因(因为类变量的值在所有对象中都是相同的,在一个对象中改变所有对象中都要改变,所以可以直接用类名进行访问)

(2)不同对象的实例变量也互不相同,改变其中一个对象的实例变量,不会对其他对象的实例变量产生影响,所以实例变量只能通过对象进行访问,不能使用类名进行访问。

}

4:实例方法与类方法的区别{

(1)类方法前会加static,而实例方法前没有static;

(2)实例方法既能对类变量进行操作,也能对实例变量进行操作,类方法只能对类变量进行操作;

(3)一个类中的方法可以相互调用,实例方法可以调用该类中的实例方法及类方法,但是类方法只能调用该类的类方法,不能调用实例方法。

(4)类方法可以通过创建的对象进行调用,也可以通过类名直接调用。但是实例方法只能通过创建对象进行调用。<此作用可以用于实例方法中变量过多,再建立对象时所占用的内存大且复杂,直接通过类名去调用比较方便快捷,且占用的内存空间少>;

(5)在类方法定义完之后,加载到内存时就已经分配了入口地址,而对于实例方法,在创建完对象之后才会分配入口地址,从而实例方法可以被类所创建的所有对象调用。附:在创建第一个对象时,类中的实例方法就分配了入口地址,之后再创建对象,不会再有另外的入口地址,即所有对象共用一个入口地址。

}

5:参数传值

{

(1)基本数据类型参数的传值

对于基本类型数据的参数,传值时,向参数传递的值的级别不能高于该参数的级别。例如:不可以向int型传递一个float类型的值,但是可以向double传递一个float类型的值;

(2)引用型数据类型的传值

当参数是引用类型时,传值传递的是变量中存放的引用,而不是所引用的实体;

}

6:可变参数

{

当参数的个数不确定时可以采用可变参数

例如:public void f(int...x)表示从第一个参数到最后一个参数数据类型都是int型

          public void g (double a,int...y)表示第一个参数为double类型,从第二个到最后一个参数的类型为int型。

}

7:this关键字

{

(1)this是一个关键字表示某个对象,可以出现在实例方法和构造方法中,不可以出现在类方法中(类方法中,表示成员变量时,可以通过类名直接调用);

(2)在构造方法中使用this:当this关键字出现在类的构造方法中,代表使用该构造方法所创建的对象

public class People{
    int leg,hand;
    String name;
    People(String s){
        name=s;
        this.init();   //可以省略this,即将this.init();写成init();
    }
    void init(){
       leg=2;
       hand=2;
       System.out.println(name+"有"+hand+"只手"+leg+"条腿");
    }
    public static void main(String args[]){
       People boshi=new People("布什"); //当调用构造方法People创建boshi时,其中的this就是对象boshi
    }
}

(3)在实例方法中使用this代表正在调用该方法的当前对象

this.成员变量    可以操作类的成员变量。

当static类型变量出现时需要用:类名.成员变量     进行调用

(4)可以用this去调用实例方法

    格式:this.方法

对于类变量,就可以通过类名直接调用

格式:类名.方法

class B{
    void f(){
        this.g();//也可以省略this和B写成:g();
        B.h();                          h();

    }
    void g(){
        System.out.println("hello");
    }static void h(){
        System.out.println("你好");
    }
}

}

 8.包(包名的目的是有效区分名字相同的类)

{

(1)包语句

使用关键字package语句必须作为java源文件的第一条语句,源文件中最多有一条package语句

格式:package 包名;

如果源程序中省略了package语句,源文件中所定义的类就会被隐含的认为是无名包的一部分,只要这些类的字节码被放到相同的目录下,那么他们就属于同一个包,但没有包名,可以相互调用

(2)有名包类的存储目录

如果一个类有了包名则不可以随意乱放,否则java虚拟机则无法进行加载。对于有包名的类,必须按照包名对应的路径进行存储(把包名中的“.”替换成\)

例如:

package tom.jiafei;

就需要保存在。。。\tom\jiafei

例如:C:\ch2\tom\jaifei

(3)运行有包名的主类

package tom.jiafei;
public class Example4_11 {
   public static void main(String args[]){
      Student stu=new Student(10201);
      stu.speak();
      System.out.println("主类的包名也是tom.jiafei");
   }
}
package tom.jiafei;
public class Student{
   int number;
   Student(int n){
      number=n;
   } 
   void speak(){
      System.out.println("Student类的包名是tom.jiafei,我的学号:"+number);
   }
}

 对于这两段代码

1编译

将他们都保存在C:\ch4\tom\jiafei\中进行编译

C:\ch4>javac tom\jiafei\Student.java

C:\ch4>tom\jiafei\Example4_11.java

2运行

在命令行中必须要到他们的父目录ch4下面进行运行

C:\ch4>java tom.jiafei.Example4_11

}

9:import语句

如果一个类想要使用的那个类和他不在一个包中,那就需要import语句进行引进

{

(1)引入类库中的类

如果引入一个包中的所有类可以用*来代替,例如

import java.util.*;

(2)引入自定义包中的名

例如import tom.jiafei.*;

>1有名包的源文件

包名路径左对齐就是源文件中包名所对应的路径与import所调用的类的包名所对应的路径的父目录相同。

例如:

C:\ch4\sun\hello\com

C:ch4\sohu\com

这两个包名所对应的路径的父目录相同,都为ch4;

>2无包名的源文件

如果一个无包名的源文件想要引进非类库中的有包名的类,只需要把源文件放到想要引进的非类库中类的包所在路径的父目录下。

例如

C:\ch4\

C:\ch4\sohu\com

就是把无名包放到ch4下就可以去调用有名包的类。

>3有名包的源文件,无论如何也无法使用有名包的类

(3)使用无名包的类

如果一个无名包的类想要使用无名包的类只需要把他们放到同一个目录中即可。

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面向对象程序设计第三版耿祥义第一章主要介绍了Java的基础知识和面向对象的概念。 1. Java语言的特点 Java语言是一种面向对象的编程语言,具有以下特点: - 简单易学:Java语言的语法类似C++,但是去掉了C++比较难理解的特性,使得Java更加容易学习和使用。 - 面向对象Java语言是一种纯面向对象的编程语言,所有的程序都是由对象组成的。 - 平台无关性:Java语言可以在不同的操作系统和硬件平台上运行,只需要安装相应的Java虚拟机即可。 - 安全性:Java语言的安全性非常高,可以在不信任的环境下运行程序,避免了一些安全漏洞。 - 高性能:Java语言的运行速度比较快,且可以通过各种优化技术来提高性能。 2. 面向对象的概念 面向对象是一种软件设计的思想,其核心是将问题看作是由对象组成的。对象是指具有一定属性和行为的实体,属性是对象的特征,行为是对象的动作。 在面向对象的设计,需要考虑以下几个方面: - 类的设计:类是创建对象的模板,需要定义类的属性和方法。 - 对象的创建:创建对象时,需要使用new关键字来调用类的构造方法。 - 对象的访问:访问对象的属性和方法时,需要使用点号操作符来进行访问。 - 继承和多态:继承是指一个类可以继承另一个类的属性和方法,多态是指同一种行为可以用不同的方式实现。 3. Java的基础知识 Java语言的基础知识包括数据类型、运算符、流程控制语句等。 - 数据类型:Java语言的数据类型包括基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型和布尔型,引用数据类型包括类、接口、数组等。 - 运算符:Java语言的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符等。 - 流程控制语句:Java语言的流程控制语句包括if语句、switch语句、for循环、while循环、do-while循环等。 4. Java程序的基本结构 Java程序的基本结构包括类的定义、方法的定义和语句块的定义。 - 类的定义:类是Java程序的基本组成单元,需要使用class关键字来定义类。 - 方法的定义:方法是类的一个函数,用于实现特定的功能,需要使用方法名、参数列表和返回值类型来定义方法。 - 语句块的定义:语句块是一组语句的集合,需要使用大括号来定义语句块。 总的来说,Java面向对象程序设计第三版耿祥义第一章介绍了Java语言的基础知识和面向对象的概念,为后续的学习打下了基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值