JAVA基础
一、面向对象
类和对象的概念:类是模具,通过这个模具,可以生成很多个对象。
类的构造:方法和属性,属性是主人,方法是仆人,方法为属性服务。类是带有函数的超级结构体(void)。
cat ca=new cat();其中c是指针,c的数据类型是cat,c可以指向任何cat模具创造出来的对象。
二、构造方法
构造方法的名称和类名一致,如果没有设置构造方法,系统会默认设置一个无参构造方法,public cat(){}
构造方法的重载(over load):
重载定义:数据类型不同,或者参数数量个数不同可以用重复的名称,提高名称利用率和代码可读性
模具的创建:
package 重载overload;
//创建mymath类
public class mymath {
int add(int a,int b){
return a+b;
}
double add(double a,double b){
return 2*(a+b);
}
}
通过模具生成对象:/**
*
*/
package 重载overload;
/**
* @author d
*
*/
public class testmymath {
/**
* @param args
*重载会自适应的调用相应的构造方法,不同数据类型和个数的参数组成重载
*/
public static void main(String[] args) {
mymath a=new mymath();
System.out.println(a.add(2, 3));
System.out.println(a.add(2.3, 3.8));
System.out.println(a.add(2, 3.5));
}
}
层叠构造方法:
构造方法可以用层叠构造方法来实现灵活性,无参构造方法调用全参构造方法。
package 层叠构造函数;
public class car {
String brand;//属性,品牌
double price;
/*
* 全参函数
*/
public car(String brand, double price) {
this.brand = brand;
this.price = price;
}
public car(String brand) {
this(brand,13200000);
}
public car(double price) {
this.brand = "福特SUV";
this.price = price;
}
public car() {
this.brand ="宝马";
this.price = 145600;
}
void run(){
System.out.println(this.brand+"在奔跑,售价为"+this.price );
}
public class cattest {
/**
* @param args
* 层叠构造参数的有点便于改动,无参构造函数,参照有参构造函数
*/
public static void main(String[] args) {
car c1=new car("福特SUV");
c1.run();
}
}
不定参数:
不定参数就是参数数量不定多少个public class mymath {
double add(double x ,int...m){
double sum=x;//数据类型双精度的高于整型
// for(int i=0;i<m.length;i++){
// sum=sum+m[i];
//
// }
//for each循环,a是一个变量,m是一个数组,数组的值传给a,这中要在JBK1.5以上版本才支持
for(int a:m){
sum=sum+a;
}
return sum;
}
}
public class tester {
public static void main(String[] args) {
mymath m=new mymath();
System.out.println(m.add(3.3,1,2,3,4,5,67));
}
}
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。
例如:
StringBuffer s = new StringBuffer();
这样初始化出的StringBuffer对象是一个空的对象。
如果需要创建带有内容的StringBuffer对象,则可以使用:
StringBuffer s = new StringBuffer(“abc”);
这样初始化出的StringBuffer对象的内容就是字符串”abc”