【编程语言】Java中的类和对象learn by Imooc
* 类是模子,确定对象将会拥有的特征(属性)和方法
* 类的特点:
* 类是对象的类型
* 具有相同属性和方法的一组对象的集合
* 对象的属性
* 属性-对象具有的各种特征
* 每个对象的每个属性都有用的特定值
* 对象的方法
* 方法-对象执行的操作(能干什么)
* 类和对象的关系
* 类是抽象的概念,仅仅是模板
* 对象是一个你能够看得到,摸得着的具体实体
* 1、类的重要性:所有Java程序都已类Class为组织单元
* 2、什么是类
* 类是模子,确定对象将会拥有的特征(属性)和方法
* 3、类的组成:属性和方法
* 4、定义一个类的步骤
* a、定义类名 public class 类名{
* b、编写类的属性 //定义属性部分
* 属性1的类型
* c、编写类的方法 //定义方法部分
* 方法1
*/
//1.定义一个类 public class ClassAndObject { //2.属性(成员方法)有什么 float screen; float cpu; float mem; //3.方法 干什么 void call(){ System.out.println("Telphone有打电话的功能!"); } void sendMessage(){ System.out.println("screen:"+screen+" cpu:"+cpu+" mem:"+mem+" Telphpne有发短信的功能!"); } /** * Java对象 * 使用对象的步骤 * 1、创建对象: * 类名 对象名 = new 类名(); * ClassAndObjec phone = new ClassAndObject(); * 2、适用对象 * 引用对象的属性:对象名.属性 * phone.screen = 5;//给screen属性赋值5 */ public static void main(String args[]){ // ClassAndObject phone = new ClassAndObject(); phone.call(); phone.sendMessage(); //1.给实例变量赋值 phone.screen = 5.0f; phone.cpu = 1.4f; phone.mem = 2.0f; //2.调用对象的方法 phone.sendMessage(); } }三、成员变量和局部变量
*
* 1、成员变量
* 在类中定义,用来描述对象将要有什么
* 2、局部变量
* 在类的方法中定义,在方法中临时保存数据
* 局部变量:定义在方法内部->只能在当前方法使用
* 成员变量:本类方法,其他类的方法->使用
* 区别:
* 1)、作用域不同
* 局部变量的作用域仅限于定义它的方法
* 成员变量的作用域在整个类内部都是可见的。
* 2)、初始值不同
* java会给成员变量一个初始值
* 不会给局部变量初始值
* 3)、在同一个方法中,不允许有同名局部变量
* 在不同的方法中,可以有同名局部变量
* 4)、两类变量同名时,局部变量具有更高的优先级(就近原则)
int var;//成员变量 void Test(){ int localVar = 10;//局部变量 System.out.println("var:"+var); System.out.println("localVar"+localVar); } void Test1(){ //System.out.println("localVar"+localVar); } public static void main(String args[]){ Variable var = new Variable(); var.Test(); }四、构造方法
1.使用new+构造方法 创建一个新的对象
2.构造方法是定义在Java类中的一个用来初始化对象的方法
构造方法与类名同名,且没有返回值
构造方法的语句格式
public 构造方法名([可以指定参数]){
//初始化代码
没有返回值类型 方法名与类名相同
}
//main: public static void main(String args[]){ //通过无参的构造方法可以创建对象 ConstructionMethod phone = new ConstructionMethod(); //通过有参的构造方法也可以创建对象,并给对象中的实例变量赋初值 ConstructionMethod phone2 = new ConstructionMethod(5.0f, 1.4f, 2.0f); } //无参构造方法: public ConstructionMethod(){ System.out.println("无参构造方法被执行了"); } //有参构造方法: public ConstructionMethod(float newScreen,float newCpu,float newMem){ screen = newScreen; cpu = newCpu; mem = newMem; System.out.println("有参的构造方法被执行了!"); }
* 5.没有指定构造方法时,系统会自动添加无参构造方法
* 6.当有指定构造方法,无论是有参、无参的构造方法,系统都不会自动添加无参的构造方法
* 7.构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法
* 8.构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值
public class StaticVariable { //static修饰的变量为静态变量,所有类的对象共享hobby static String hobby = "原本imooc"; //使用static关键字声明静态方法 public static void print(){ System.out.println("静态方法"); } public static void main(String[] args) { // TODO Auto-generated method stub /** * 静态变量: * Java中被static修饰的成员成为静态成员或类成员。它属于整个类所有 * 静态成员可以使用类名直接访问,也可以使用对象名进行访问 * 使用static可以修饰变量、方法和代码块 */ //静态变量可以直接使用类名来访问,无需创建类的对象 System.out.println(StaticVariable.hobby); //创建类的对象 StaticVariable svar = new StaticVariable(); System.out.println(svar.hobby); //使用对象名的形式修改静态变量 svar.hobby = "已修改hello"; //再次使用类名访问静态变量,值已被修改 System.out.println(svar.hobby); /** * 静态方法: * 直接使用类名调用静态方法 * 也可以通过对象名调用,当然推荐使用类名调用的方式 */ //类名调用静态方法 StaticVariable.print(); //对象名调用 StaticVariable svar_2 = new StaticVariable(); svar_2.print(); } } public class StaticSet { /** * * Java中的Static使用静态初始化块 * 通过初始化块进行数据赋值 * 类的声明中,可以包含多个初始化块,当创建类的实例时,就回依次执行这些代码块 * 静态初始化块(使用static修饰初始化块) * 静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量 * 静态初始化块先执行——>普通初始化块-->构造方法 */ int name1; int name2;//定义一个成员变量 static int name3; public StaticSet(){ //通过初始化块为成员变量赋值,构造方法 { name1 = 91; System.out.println("通过构造方法为变量name1赋值。"); } } //初始化块 { name2 = 92; System.out.println("通过初始化块为变量name2赋值"); } static{//静态初始化块 name3 = 93; System.out.println("通过静态初始块为静态变量name3赋值"); } public static void main(String args[]){ StaticSet sSet = new StaticSet(); System.out.println("name1:"+sSet.name1); System.out.println("name2:"+sSet.name2); System.out.println("name3:"+name3); StaticSet sSet2 = new StaticSet(); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。