面向对象基础:
对象(Object):指的是某一个具体的物体,比如一只狗.
属性(Field):对象的特,比如学生类里面的名字,年龄,学号什么的.
类(Class):指的是对某一类东西的统称,比如学生类,人类.
对象的代码示例:
创建一个学生类
package com.csqf;
public class Student {
String name ;//名字
int age ;//年龄
String sex;//性别
double score;//分数
}
根据学生类创建的具体的对象:
package com.csqf;
public class Test004 {
public static void main(String[] args) {
//学生对象一
lp l1 = new lp();
l1.name="张三";
l1.age=20;
l1.sex="男";
l1.score=11.1;
l1.sss();
//学生对象二
lp l2 = new lp();
l2.name="李四";
l2.age=20;
l2.sex="男";
l2.score=98.5;
l2.sss();
}
}
类的组成部分:
类名:类名必须与创建的文件名一致,java的文件名后缀是.java.
命名规则:
1,首字母必须是字母,后面可以是字母和数字,长度基本没要求,但是建议不要太长,不是使用java 的关键字不如public,private
2,需要用驼峰结构来命名.
package com.csqf;
public class Test004 {
}
类的属性(成员变量):是组成类的一部分;
可以定义多种类型的属性.比如String,int,double,
也可以是值类型;
可以是应用数据类型;
package com.csqf;
public class Student {
String name ;//名字 这些就可以叫做值类型
int age ;//年龄
String sex;//性别
double score;//分数
}
方法:代表类的行为
一般需要static修饰;(static静态的)
方法体必须要被实现;
不同的对象可以共用一个方法;
public void Test001(){
System out println("这是个方法")
}
两种不同的方法:
一种是一般的方法;
另外一种是构造方法;
构造方法:是类的一个特殊的方法,用来初始化类的一个新的对象,在创建(new创建)一个对象的 时候调用.
主要是给属性赋值的方法.
构造方法赋值是最好是用this获取当前对象属性
每一个类都有一个默认的构造方法,当程序员自定义构造方法后,默认的就会失效,这时候就需要自己定义.
/*默认的构造方法*/
public Hero(){
}
//创建构造方法
public Hero(String name,int blood,String[] skins){
this.name = name;
this.blood = blood;
this.skins = skins;
}
java构造方法有以下几个特点:
方法名必须和类名相同.
可以用0个,1个或者多个参数.
没有任何返回值,包括void.
默认返回类型就是对象类型本身
只能与new运算符结合使用
一些概念: 重载:在一个类中是否可以定义两个相同名称的方法呢?是可以的
前提是方法的参数必须是不同的
将一个方法中名称相同,参数不同的两个不同的方法,我们称之为重载
public class Student {
String name;
public void say(){ // => say
}
public void say(String name){ //=> say_name
}
}
构造方法也是支持重载的
public Class Student{
String name;
//默认的构造方法(无参的构造方法)
public student () {
}
//有参的构造方法
public student(String name){
this.name = name;
}
}
构造方法(constroctor):
对象被创建的时候默认调用
如果一个类不写构造方法,那么这个类就会有一个默认无参的构造方法
如果自己定义了构造方法的话,那么默认的构造方法就会失效,如果这个时候调用构造方法的话就 会报错,自己定义的话还是添加上去有参的构造方法和无参的构造方法
this的用法:this是对象内置引用的,指向自己,防止语法发生歧义.
使用this调用构造方法:
必须是在构造方法第一行.
不可以循环调用.
//默认的无参构造方法
public student(){
//调用一个有参数的构造方法
this("未知");
}
//有参的构造方法
public student(String name){
this.name = name;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)