Java基础

来源:互联网 发布:小米电动牙刷 知乎 编辑:程序博客网 时间:2024/06/18 04:24
JAVA:
面向对象:封装,继承,多态
基于对象:javascript
类:一类事物**描述**(共性)
对象:客观世界真实存在(个性)


类成员:
字段(成员变量):规范:先小写后大写
封装:必要性不能让客户随意更改(只对字段)
1)字段:字段私有,private
2)公开getXxx和SetXxx方法
方法:动态的行为
[访问权限] 返回值 方法名 ([参数列表]) {//方法体}
构造方法:没有返回值,与类同名。


类之间的关系:
继承(is-a):泛化
组合(has-a):
合成:整体和个体生命周期相同(耦合度较高)
聚合:整体和个体生命周期不同
关联:yes or no
依赖(use-a)B依赖A:一个A类作为另外一个类B的方法的参数或者返回值
实现:类和借口之间实现关系
继承(耦合度最高):子类 extends 父类  单继承,多实现 C++:多继承,多实现 猴,混乱
{抽象类:abstract关键字修饰
把不确定的部分暴露出去,让子类去实现
复写:子类优先运行和父类一样的方法
final:就一常量}后期补充的


TestPerson:


public class TestPerson {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Person p=new Person();//产生对象
p.setAge(230);
p.setName("郭就");
p.setAddress("黄岛");
p.eat("东软睿道食堂",10,"筷子");
System.out.println(p.getAge()+"\t"+p.getName()+"\t"+p.getAddress());


Phone q=new Phone("lenovo",2000,5);
q.setBrand("apple");
q.Open();
q.Connect();
String s = q.Tellmebrand("vivo");
System.out.println(s);
System.out.println(q.getSize());
System.out.println("My Phone Money is:"+q.getMoney());


//GetTime b = new GetTime();
//Single2 a=new Single2();


}


}


Person.java:


public class Person {
//字段(成员变量)
private int ageOf;//年龄
private String name;//姓名
private String address;//住址
private Pet pet;//组合关系
//构造方法(构造器)
public Person(){

}
public int getAge(){//取变量的值
return ageOf;
}
public void setAge(int a){//给变量赋值
if(a<0||a>150){
System.out.println("Error Age!");
System.exit(-1);
}
this.ageOf=a;
}
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
//方法:
public String eat(String address,double price,String tools){
System.out.println("eating... at "+address+" with "+tools+", price is "+price);
return "good";
}
public void run(){
System.out.println("runing...");
}
public Car buyCar(Car car){//依赖
return car;
}


}


class Car
{
}
class Pet
{
}


Phone.java:


public class Phone {


//成员变量
private String brand;
private int money;
private int size;
//封装
public void setBrand(String brand) {
this.brand = brand;
}


public String getBrand() {
return brand;
}


public void setSize(int size) {
this.size = size;
}


public int getSize() {
return size;
}


public void setMoney(int money) {
this.money = money;
}


public int getMoney() {
return money;
}
//构造方法
public Phone(String x,int a,int b){
setBrand(x);
setMoney(a);
setSize(b);
}


//方法
public void Open(){
System.out.println("Open");
}
public void Connect(){
System.out.println("Connect to Internet");
}
public String Tellmebrand(String brand){
System.out.println("Your Phone brand is "+brand);
return "htc";
}




}


Single.java://饿汉式
class Single {
private Single () {}
private static Single s = new Single();
public static Single getInstance (){
System.out.println("Single1");
return s;
}
}


Single2.java://懒汉式,延迟加载方式


public class Single2 {
private Single2 () {}
private static Single2 s = null;
public static Single2 getInstance (){
if(s == null) s = new Single2();
System.out.println("Single2");
return s;
}
}


GetTime.java://抽象类模板


abstract class GetTime {
public final void getTime(){
long start = System.currentTimeMillis();
code();//抽象实现不确定的部分
long end = System.currentTimeMillis();
System.out.println("毫米是"+(end-start));
}
public abstract void code();//子类复写抽象
}
class SubDemo extends GetTime{
public void code(){
for(int y=0;y<1000;y++){
System.out.println(y);
}
}
}
0 0