做网站需要公司,网站为什么突然访问不了,淘宝客做网站要钱吗,页面模板怎么添加文章面向对象
概述#xff1a;Java一种面向对象的程序设计语言#xff0c;面向对象思想是一种程序设计思想#xff0c;在面向对象思想的指引下#xff0c;使用Java语言去设计、开发计算机程序。
这里的对象泛指现实中一切事物#xff0c;每种事物都具备自己的属性和行为。
…面向对象
概述Java一种面向对象的程序设计语言面向对象思想是一种程序设计思想在面向对象思想的指引下使用Java语言去设计、开发计算机程序。
这里的对象泛指现实中一切事物每种事物都具备自己的属性和行为。
面向对象思想就是在计算机程序设计过程中参照现实中事物将事物的属性特征、行为特征抽象出来描述成计算机事件的设计思想。 它区别于面向过程思想强调的是通过调用对象的行为来实现功能而不是自己一步一步的去操作实现。
面向对象思想是一种更符合我们思考习惯的思想它可以将复杂的事情简单化并将我们从执行者变成了指挥者。面向对象的语言中包含了三大基本特征即封装、继承和多态。
面向过程思想强调完成某件事的具体步骤。
/*
面向过程当实现一个功能时每一步都要亲力亲为详细到每一个细节。
面向对象当实现一个功能时不关心具体的步骤而是找一个可以实现此功能的事物帮助我们完成这个事物即面向对象。
*/
import java.util.Arrays;
public class Javaobject{public static void main(String[] args){int[] arr1 new int[]{1,2,3,4,5};// 1.使用面向对象过程打印数组arr1System.out.print([);//println中ln表示换行可以去掉ln表示不换行打印for(int i 0; i arr1.length; i ){if(i arr1.length - 1){System.out.print(arr1[i] ,);}else{System.out.print(arr1[i]);}};System.out.println(]);//[1,2,3,4,5]// 2.使用java中内置Arrays.toString()方法实现打印arr1:// 找一个JDK给我们提供的Arrays类Arrays类中有一个toString方法它可以帮助我们完成这个功能体现了面向对象的思想。System.out.println(Arrays.toString(arr1));//[1, 2, 3, 4, 5],需要注意使用此方法时应该导入java中util中的Arraysimport java.util.Arrays;}
}类一组相关属性和行为的集合。可以看成是一类事物的模板使用事物的属性特征和行为特征来描述该类事物。
属性某事物的状态信息。
行为某事物可以做某些事的能力方法。
对象一类事物的具体体现。对象是类的一个实例具备该类事物的属性和行为。
类与对象的关系类是对一类事物的描述是抽象的而对象是一类事物的具体实例是具体的对象是一个类的具体体现类是一个对象的模板。
定义类定义类指的是定义类的成员其中包括成员变量和成员方法成员变量是定义在类当中方法外的变量成员方法是定义时去掉static(有static为普通方法的定义)。
// 1.定义一个类(学生)学生类有成员变量属性和成员方法行为等如
public class Students{//public static是固定写法没错但是在定义类时这里无需static为成员方法,普通方法才使用static// 成员变量直接定义在类中方法外的变量为成员变量String name;//名字int age;//年龄byte sex;//性别double weight;//体重double height;//体重// 成员方法定义方法时不写static为成员方法写static为普通方法public void sleep(){System.out.println(睡觉);};public void eat(){System.out.println(吃饭);};public void study(){System.out.println(学习);};public void play(String sth){System.out.println(玩 sth);};
}创建对象并使用 创建对象并使用分三步
1.导包指明要使用的类在什么位置其格式为import 包名称.类名称如果类是在当前包中那么可以不用导包直接new一个对象。
2.new一个对象使用关键字new创建某类的实例其格式为类名称 对象名自定义 new 类名称();
3.使用类成员使用成员变量其格式为对象名.成员变量 值使用成员方法其格式为对象名.成员方法(参数);
// import 包名.Students;// 1.导入包中的某类,顶部导入这里为同一个包中可以省略
public class Xiaoming{public static void main(String[] args){// 2.new一个对象类的实例Students xiaoming new Students();// 3. 使用成员变量// 给成员变量赋值xiaoming.name 小明;xiaoming.age 18;xiaoming.sex 1;xiaoming.height 170;xiaoming.weight 62.5;// 打印成员变量的值System.out.println(xiaoming.name);//小明System.out.println(xiaoming.weight);//62.5// 成员方法传参数并调用xiaoming.play(篮球);//玩篮球xiaoming.eat();//吃饭}
}
一个对象内存图 两个对象同一类内存图手机实例做参考 两个对象指向同一地址内存图手机实例做参考 对象作为参数传入方法
// 1.方法中可以传入任何数据类型的数据作为参数这里将Students类new出来的对象作为参数为例
public class StudentsParam{public static void main(String[] args){// 1-1:new两个对象xiaohong和jack:Students xiaohong new Students();xiaohong.name 小红;xiaohong.age 18;xiaohong.sex 0;xiaohong.weight 50.0;xiaohong.height 170.0;Students jack new Students();jack.name 杰克;jack.age 19;jack.sex 1;jack.weight 60.5;jack.height 170.0;// 1-3分别传入两个对象作为info方法的参数调用info方法info(xiaohong);//当前学生姓名为小红,龄为18岁,性别女,体重为50.0kg,身高为170.0cm.info(jack);//当前学生姓名为杰克,龄为19岁,性别男,体重为60.5kg,身高为170.0cm.}// 1-2:定义一个普通方法info要求传入数据类型为Students类的对象做为参数调用(实际传入的是地址值)public static void info(Students someone){//Students类似int等表示后面somenoe的数据类型这里为Students类传入一个对象类型。System.out.print(当前学生姓名为 someone.name ,);System.out.print(龄为 someone.age 岁,);System.out.print(性别 (someone.sex 0 ? 女 : 男) ,);System.out.print(体重为 someone.weight kg,);System.out.println(身高为 someone.height cm.);}
}对象作为方法返回值
// 1.将对象作为方法的返回值进行使用
public class ReturnStudentsobj{public static void main(String[] args){// 1-2:调用creatStudentInfo方法来创建对象,并将返回值赋值给变量Students stu1 creatStudentInfo(kuhai,23,(byte) 1,60,167);Students stu2 creatStudentInfo(ConstancyMan,23,(byte) 1,60,167);// 1-3:测试通过creatStudentInfo方法返回值创建的对象System.out.println(stu1.name);//kuhaiSystem.out.println(stu2.name);//ConstancyMan};// 1-1定义个方法creatStudentInfo来创建一个对象并返回这个对象public static Students creatStudentInfo(String names,int ages,byte sexs,double weights,double heights){Students stu new Students();stu.name names;stu.age ages;stu.sex sexs;stu.weight weights;stu.height heights;return stu;};
};成员变量和局部变量的区别
1.定义位置不同局部变量定义在方法内部成员变量定义在类中。
2.作用范围作用域不同局部变量只有在方法当中有效而成员变量在整个类可以使用包括方法中。
3.默认值不同局部变量没有默认值成员变量有默认值。
4.内存位置不同局部变量位于栈内存成员变量位于堆内存。
5.生命周期不同局部变量随着方法进栈产生方法出栈消失成员变量随着对象创建产生对象被垃圾回收成员变量消失。
java中封装
1.方法即是一种封装。
2.关键字private私有化也是一种封装其是对成员变量的修饰避免不合理的值被设置给成员变量。被private修饰的成员变量超出本类后将不能直接访问成员变量需要通过get-和set-方法间接设置和访问被private修饰的成员变量如下
private关键字
创建类
// 创建一个PrivatePerson类并使用private关键字修饰某些成员变量
public class PrivatePerson{String names;// 1.使用关键字private修饰某些成员变量使其在被赋值时可以合法例如年龄不能为负值等private int age;// int age;// 2.在方法info中使用成员变量包括被private修饰的成员变量在本类中是可以直接通过点.的方式访问的一旦超出本类就不能直接访问public void info(){System.out.println(该用户的姓名为names,年龄为age岁。);}// 3.此时编译此类不会报错如果不在本类中直接使用age成员变量就会有报错此时只能间接的访问和设置被private修饰的成员变量// 3-1设置被private修饰的成员变量其方法是定义一个方法以参数的形式修改成员变量在超出类的作用域调用该方法即可特别强调方法名应命名为set首字母大写的成员变量名如setAgepublic void setAge(int ages){// age ages;// 4此时我们可以对传入的参数进行筛选使其合法如if(ages 120 ages 0){age ages;}else{age 18;}}// 3-2:访问被private修饰的成员变量其方法是定义一个方法以返回值的形式返回成员变量在超出本类的作用域调用该方法即可特别强调方法名应命名为get首字母大写的成员变量名如getAge但是对于布尔类型要命名为is-格式如isManpublic int getAge(){return age;}
};实例化对象
public class NewPersonPrivateage{public static void main(String[] args){// 1.new一个PrivatePerson类的实例:person1并使用被private关键字修饰的成员变量age:PrivatePerson person1 new PrivatePerson();person1.names luck;// person1.age 18;//1-1通过private关键字修饰的成员变量在超出它自己类后直接使用会报错错误: age 在 PrivatePerson 中是 private 访问控制// 1-2通过调用实例化对象person1下的setAge和getAge方法设置和访问被private修饰的成员变量// 设置成员变量age:person1.setAge(-10);// 访问成员变量age:int param person1.getAge();System.out.println(person1的名字为person1.names,年龄为param岁。);//此时不会报错并打印出了person1的名字为luck,年龄为18岁这里类似JavaScript中jsonp跨域请求数据。}
}this关键字
当方法的局部变量和类的成员变量重名时根据就近原则使用变量若要访问成员变量可以在成员变量前面加this点.如
//1.创建类
public class ThisKey{String names;public void sayHello(String names){System.out.println(names说names,你好);//luck说luck,你好System.out.println(this.names说names,你好);//jack说luck,你好//this代表当前类实例化对象后代表实例化的对象}
}//2.实例化对象
public class ThisKeyObj{public static void main(String[] args){ThisKey thiskeyobj new ThisKey();thiskeyobj.names jack;thiskeyobj.sayHello(luck);/*System.out.println(names说names,你好);//luck说luck,你好System.out.println(this.names说names,你好);//jack说luck,你好不使用this方法会使用参数若使用this方法会使用成员变量*/ };
}构造方法
构造方法是专门用来创建对象的方法通过关键字new创建对象时其实就是在调用构造方法其格式为public 类名称(参数类型 参数名称){方法体}
注意事项
1.构造方法名称和所在类名称一致
2.构造方法不能写返回值void也不用写
3.如果没有编写任何构造方法编译器将自动编译一个构造方法其什么事也不做。
4,如果自己编写了构造方法编译器将不再自动编译一个构造方法使用自己编写的构造方法即可。
5.构造方法也可以重载。
public class Person{public Person(){};
}定义一个标准类
标准类也叫Java Bean,一个标准的类要满足以下几点
1.所有成员变量使用private关键字进行修饰。
2.为每一个成员变量编写get-和set-方法。
3.编写一个无参数的构造方法。
4.编写一个全参数的构造方法。
public class Student {private String name; // 姓名private int age; // 年龄public Student() {}public Student(String name, int age) {this.name name;this.age age;}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;}
}提示本文图片等素材来源于网络若有侵权请发邮件至邮箱810665436qq.com联系笔者删除。 笔者苦海