java初学都必须懂得的概念(用代码说明)

下面是自己学习java以来的一些小的总结,可能有些错误,望您多多指点!!!

1 . final变量   定义以后就要赋值
package one;

public class A
 final int age=23;
}

下面讨论的是继承的问题:
2
package one;

public class A {

 public void getRun(){
  System.out.println("我是一个普通方法!");
 }
}

package one;

public class B extends A{
 public static void main(String args[])
 {
  B  b=new B();//非静态方法,,所以先实例化,然后才能调用!!
  b.getRun();
 }
}

3
package one;

public class A {

 public static void getRun(){
  System.out.println("我是一个静态方法!");
 }
}

package one;

public class B extends A{
 public static void main(String args[])
 {
  B.getRun();//主方法里面是静态方法,所以不用实例化,直接就可以调用 了!
 }
}
4
java里默认的类是public所以变量是public  ,而C#里默认的类是private所以变量也是private


5
如果
package one;

public class A {

private  static void getRun(){
  System.out.println("我是一个静态方法!");
 }
}
后面的
public class B extends A{
public static void main(String args[])
 {
  B.getRun();//出现Exception
 }
}
只有是public ,protect,或者默认的才不会出现Exception.

5
protected 和 **ult的区别!!
主要是访问权限的区别:
protected修饰的方法 只有他的子类(同包或异包)以及在同一包下面的类可以访问.
default修饰的方法 一定得同一包下面的类才能访问,如果是它不同包下的子类都不能对其方法进行范围的!

package one;

public class A {
     static void getRun(){
  System.out.println("我是一个静态方法!");
 }
}

package two;

import one.A;
public class B extends A{
 public static void main(String args[])
 {
  B.getRun();//出现Exception
 }
}

6 java里的void ~~~


package one;

public class A {
    public void getRun(){                                      //没有返回值,所以定义为void
  System.out.println("我是一个普通的方法!");

     }
    public int getMax(int a,int b){           //有返回值,并且返回值类型为int
     int max=a>b?a:b;
     return max;

    }
}


7  实例直接调用!
package one;

public class A {
    public void getRun(){
  System.out.println("我是一个普通的方法!");

     }
    public int getMax(int a,int b){
     int max=a>b?a:b;
     return max;

    }
    public static void main(String args[]){
     new A().getRun();      //相当于A a=new A(); a.getRun();
    }
}

8 接口interface与抽象类abstract
 
只要是抽象类,里面是一定是抽象方法,抽象方法是可以去实现的.
而接口类似于抽象类.里面是抽象方法是不能实现的,必须通过另外
类去实现(implements)这个接口.然后实现接口里面的所有抽象方法.
两者都不能继承...

package one;

public interface C {
 public void getRun(){
  //这里是错误的,不能去实现接口里的方法,只能定义.
 }

}

正确的是:
package one;

public interface C {
 public void getRun();

}

定义一个类implements 接口C

package one;

public class D implements  C {

 
 public void getRun() {
// 
 }

}


抽象类:

下面的代码是错误的.
package one;

public abstract class E {

 public  void getRun() { 
    System.out.println("我喜欢跑步");
 }
 public static void main(String args[]){
   new E.getRun();
 }
}

正确的代码如下:
package one;

public abstract class E {

 public static void getRun() { 
    System.out.println("我喜欢跑步");
 }
 public static void main(String args[]){
      E.getRun();
 }
}

9.封装类.

// 用户类
class User {
    // 用户类的成员变量(分别对应User表中的属性)
    private String name;
    private String password;
    private String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // ... 其他变量也定义Getter()和Setter()方法。
}
// 用户数据控制类
class UserTest {
   
    public static void main(String[] args) {
        // 定义一个用户对象,且初始化
         User u = new User();
        u.setName("zhangsan");
        u.setPassword("123456");
        u.setEmail("zhangsan@163.com");
        // 直接传User类的对象就可以了。
         // 中间经过的类不用关心User类每个属性。
         // 调用其他类,传递这个类
         UserDB ud = new UserDB();
         ud.save();
    }
}
// 负责保存到数据库的类。
class UserDB {
   
    // 保存到数据库。
    public void save(User u) {
        // 这里就可以得到User类里的所有要保存的数据了。
         // 保存。。。
    }
}


取的时候就更简单了,取出来的时候包装成一个User对象。
那么,想要什么取什么。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值